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