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:

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

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

    ResponderEliminar
  3. 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.

    ResponderEliminar
  4. QUIERO QUE ME IMPRIMA LOS PRIMEROS 3 PERFETOS

    ResponderEliminar
  5. 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! :)

    ResponderEliminar