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
Ir a la versión completa