Dado un rango, la tarea es escribir un programa R para imprimir todos los números perfectos en ese rango.
Un entero positivo que es igual a la suma de sus divisores propios se conoce como número perfecto. El número perfecto más pequeño es 6, que es la suma de 1, 2 y 3. Otros números perfectos son 28, 496 y 8128. Tenga en cuenta que todos los números cuadrados perfectos terminan en 0, 1, 4, 5, 6 o 9, pero todos los números terminan en 0, 1, 4, 5, 6 o 9, por lo que los números perfectos no son números cuadrados perfectos. Ejemplo, 11, 21, 51, 79, 76, etc. son los números que no son números cuadrados perfectos.
Algoritmo:
- Intervalo fijo
- Encuentra los factores del número
- encontrar suma
- Consultar equivalencia
- Elija en consecuencia
- Número de incremento
- Continuando de esta manera hasta llegar al final del intervalo.
Ejemplo :
Encuentre los números perfectos y no perfectos hasta 10 números a partir de 1 ?
Producción:
[1] “1 no es un número perfecto”
[1] “2 no es un número perfecto”
[1] “3 no es un número perfecto”
[1] “4 no es un número perfecto”
[1] “5 no es un número perfecto”
[1] “6 es un número perfecto”
[1] “7 no es un número perfecto”
[1] “8 no es un número perfecto”
[1] “9 no es un número perfecto”
[1] “10 no es un número perfecto”
Ejemplo 1:
R
for (k in 50:100) { n = k i = 1 s = 0 while (i < n) { if (n %% i == 0) { s = s + i } i = i + 1 } if (s == n) { print(paste(n,"is a perfect number")) } else{ print(paste(n,"is not a perfect number")) } k=k+1 }
Producción:
[1] “1 no es un número perfecto”
[1] .
[1] .
[1] “6 es un número perfecto”
[1] “7 no es un número perfecto”
[1] .
[1] .
[1] “27 no es un número perfecto”
[1] “28 es un número perfecto”
[1] .
[1] .
[1] “495 no es un número perfecto”
[1] “496 es un número perfecto”
[1] .
[1] .
[1] “500 no es un número perfecto”
Ejemplo 2:
R
perfect_numbers = c() non_perfect_numbers=c() for (k in 1:100) { n <- k i = 1 s = 0 while (i < n) { if (n %% i == 0) { s = s + i } i = i + 1 } if (s == n) { perfect_numbers = c(perfect_numbers, n) } else{ non_perfect_numbers = c(non_perfect_numbers, n) } } print(perfect_numbers) print(non_perfect_numbers) k=k+1
Producción:
(numeros_perfectos)
[1] 6 28
(numeros_no_perfectos)
[1] 1 2 3 4 5 7 8 9 10 11 12 13 14 15 16 17 18 19 20
[20] 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40
[39] 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
[58] 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
[77] 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
[96] 98 99 100
Publicación traducida automáticamente
Artículo escrito por kpavankumar78429 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA