[C con Clase] NUMEROS PERFECTOS

Steven Davidson steven en conclase.net
Vie Mayo 18 01:31:20 CEST 2007


Hola César Andrés,

El pasado 2007-05-17 22:38:22, CESAR ANDRES ROMERO escribió:

CAR> HOLA INGENIEROSS!!
CAR> DE ANTEMANO MUCHAS GRACIAS POR SUS MULTIPLES COLABORACIONES ME HAN SIDO DE GRAN UTILIDAD. EN ESTA OCACION LOS MOLOLESTO YA QUE TENGO UN INCONVENIENTE CON UN CODIGO DE C. NECESITO QUE EL AL PROGRAMA SE LE PREGUNTE POR EL SEGUN O TERCERO O QUINTO NUMERO PERFECTO Y ME ARROJE EL NUMERO. PERO NO HE PODIDO. LES ADJUNTO EL CODIGO QUE LLEVO ELABORADO:

Bueno, para averiguar "instantáneamente" un número perfecto arbitrario, tendrías que crear un array de tales números perfectos. Esto implica precrear los resultados y acceder a ellos a través de un array cuando son pedidos.

Por otro lado, podemos hacer uso de los análisis que se han hecho acerca de este tipo de números. Por lo que se sabe, sólo existen números pares que son perfectos; al menos se ha comprobado los primeros 10^300 números. Tambiés se ha descubierto que los números perfectos (pares) siguen esta fórmula:

Para, P > 6,

P = 1 + 9*T_n, donde T_n es un número triangular:

T_n = n*(n+1) / 2, donde n = 8*j + 2, donde j=0,1,2,...

Por ejemplo,

j=0  =>  n=2  =>  T_2  = 3  =>  P = 28
j=1  =>  n=10 =>  T_10 = 55 =>  P = 496
...

Con esto, sí puedes calcular el primer n-ésimo número perfecto.


Espero que esto te ayude.

Steven


Más información sobre la lista de distribución Cconclase