Ver Mensaje Individual
  #10 (permalink)  
Antiguo 27/10/2013, 13:18
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: De for a While

Código C++:
Ver original
  1. #include <stdio.h>
  2. void main (void)
  3. {
  4.    int i,num,mitad,suma=1; // como 1 siempre es divisor ya le damos el valor de 1 a la suma.
  5.    printf("Dame un numero\n");
  6.    scanf("%d", &num);
  7.    i=2;
  8.    mitad=num/2;    // Buscamos solo hasta la mitad ya que matemáticamente de la mitad al final solo...
  9.                     // ...es divisible entre 1 o el mismo y en este caso los desechamos.
  10.                    
  11.    while(i<=mitad)
  12.    {
  13.        if(num%i==0)
  14.            suma+=i;  
  15.        i++;
  16.    }
  17.    if ((suma==num)&&(num!=1))
  18.        printf("El numero %d es perfecto.", num);
  19.    else
  20.        printf("El numero %d no es perfecto.", num);
  21. }

Encontré una versión mas optima en una pagina por ahí.
No se donde por que se me corgo la pc XDD
Pero reduce la carga, esta comentado. ;)