Pages

miércoles, 30 de enero de 2013

Calcular los cinco primeros números perfectos Codigo Fuente en C

Problema
Diseñar un algoritmo que permita calcular los 5 primeros números perfectos (un número es perfecto, cuando la suma de sus divisores, sin incluirlo al número es exactamente el mismo número). El 6 es un número perfecto por sus divisores son 1,2 y 3.

Codigo Fuente en C
#include <stdio.h>
int main()
{
 int p[11];
 int b=0, a,k,i,x;
         for(k=2;k<702;k++){
              a=0;
              for(i=1;i<(k+2);i++){
                  if(k%i==0){
                      a=a+i;
                       if((a-k)==k){
                         p[b]=k;
                         b++;
                        }
                  }
              }
          }
         for(x=0;x<b;x++){
             printf("%d Es un numero perfecto\n",p[x]);
    }
    return 0;
}

5 comentarios:

Josue Conejo dijo...

como le puedo hacer si quiero que me imprima los primeros 30 numeros perfectos??

Josue Conejo dijo...

como le puedo hacer si quiero que me imprima los primeros 30 numeros perfectos??

Anónimo dijo...

Es un numero demasiado grande, no cabe en la memoria, y el código esta mal al correrlo me dice que 120 es un número perfecto y no lo es.

Kary Dominguez dijo...

QUIERO QUE ME IMPRIMA LOS PRIMEROS 3 PERFETOS

Gustavo Santana Redoli dijo...

Bueno el código de arriba está malo, así que dejo el que he hecho por si a alguien le interesa. http://i.imgur.com/d7eJTFt.png

He tratado de explicarlo un poco con los comentarios, aunque no se me da muy bien xD

Saludos! :)

Publicar un comentario en la entrada