Números perfectos

Procedo a transmitirle mi duda.
Me han pedido una aplicación que determine y muestre tdos los números perfctos entre 1 y 1000 e imprimir los factores de cada número perfectopara confirmar que sean perfectos.
Bueno yo empiezo antes que nada por efectuar la búsqueda de números perfectos entre 1 y 1000 con el siguiente código:
  public static void main(String[] args) {
        int suma =0;
        for(int i = 1; i <= 1000; i = i + 1 )
        {
            for(int j = 1; j < i; j = j + 1)
            {
                if(i % j == 0)
                    suma = suma + j;
            }
                  if(i == suma)
            System.out.printf("%d es perfecto\n", i);  
        // TODO code application logic here
    }
}
}
Pero la compilación no me da resultados, que tendría que ser 6, 28 y 496.
Agradezco tu disponibilidad y espero pueda ayudarme ya que quiero sacar esta parte para continuar con la impresión de los factores.
Respuesta
1
Tienes un pequeño error, y es que no inicializas correctamente la variable "suma" cuando cambias el número a comprobar. Te paso el código corregido:
int suma; 
for(int i=1; i<= 1000; i++){
  suma = 0;
  for(int j=1;j<i; j++){ 
    if(i % j == 0){ 
      suma += j; 
    }
  }
  if(i == suma){ 
    System.out.printf("%d es perfecto\n", i);
  }
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas