Programa R para encontrar números perfectos hasta n números y en el rango dado

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *