Programación General > Visual C++

 Números Perfectos: Que alguien me diga dónde está el error aquí

(1/1)

Judai:
Hola, soy nuevo aquí y apenas me he iniciado en C++
Quise crear un programa que me muestre los 5 primeros números perfectos, pero al ejecutarlo me muestra el número 4 y el número 5.
¿Alguien podría ayudarme y decirme dónde está el error y por qué está mal? Se los agradecería bastante. Les adjunto el programa:

#include <iostream>
using namespace std;

int main(){
   
   int j, contador,suma, n;
   
   n=2;
   suma=0;
   contador=0;
   
   while (contador<5){
      n=n+1;
      for(j=1;j<n;j++){
         if (n%j==0)
            suma=suma+j;
         }
      if (suma==n){
         contador=contador+1;
         cout<<n<<endl;
         }
   }
system ("pause");
return 0;
}

chenech:
Hola Judai, te falta inicializar a cero el valor de suma antes de cada bucle, añade suma = 0 despues de while, quedaría así:


--- Código: ---#include <iostream>
using namespace std;

int main(){
   
   int j, contador,suma, n;
   
   n=2;
   contador=0;
   
   while (contador<5){
      n=n+1;
      suma = 0;
      for(j=1;j<n;j++){
         if (n%j==0)
            suma=suma+j;
         }
      if (suma==n){
         contador=contador+1;
         cout<<n<<endl;
         }
   }
system ("pause");
return 0;
}
--- Fin del código ---

Navegación

[0] Índice de Mensajes

Ir a la versión completa