Autor Tema: Número perfecto, magma

0 Usuarios y 1 Visitante están viendo este tema.

24 Octubre, 2017, 08:09 am
Leído 1209 veces

Julio_fmat

  • Héroe
  • Mensajes: 2,205
  • País: cl
  • Karma: +0/-0
  • Sexo: Masculino
    • Fmat
Un número entero positivo \( n \) es perfecto si la suma de sus divisores propios es igual con \( n \). Ocupando el comando Magma Divisors(), escriba un programa que entregue los primeros 4 números perfectos.

Bueno, en algún momento usamos el comando Divisors(). Por otro lado, creo que no usamos function, porque no nos piden una funcion... Pero si "IF".
"Haz de las Matemáticas tu pasión".

24 Octubre, 2017, 08:15 am
Respuesta #1

sugata

  • Héroe
  • Mensajes: 2,487
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
La sentencia IF es un bucle que acaba en THEN, habitualmente en otros lenguajes.
Entonces con este bucle podemos determinar si el número es perfecto determinando IF suma de divisores =n THEN el número es cuadrado.
Esto debería ir en otro bucle que cuente los números encontrados y al llegar a 4 pare.

24 Octubre, 2017, 09:16 am
Respuesta #2

Ignacio Larrosa

  • Moderador Global
  • Mensajes: 2,270
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Actividades con GeoGebra
Un número entero positivo \( n \) es perfecto si la suma de sus divisores propios es igual con \( n \). Ocupando el comando Magma Divisors(), escriba un programa que entregue los primeros 4 números perfectos.

Bueno, en algún momento usamos el comando Divisors(). Por otro lado, creo que no usamos function, porque no nos piden una funcion... Pero si "IF".

Con Derive, y aplicando tan solo la definición de nýumero perfecto, bastaría con

SELECT(SUM(DIVISORS(n)) = 2·n, n, 1, 10000)

para obtener \( [6, 28, 496, 8128] \).

La función DIVISORS(n) obtiene la lista de todos los divisores positivos de \( n \), incluidos \( 1\textrm{ y }n \).

En Magma debe ser similar.

Saludos,
Daría todo lo que se por la mitad de lo que ignoro (R. Descartes)
O incluso por muchísimo menos ...  (yo)