Dice así: Escriba un programa que acepte un entero positivo y determine si es un numero perfecto (un numero perfecto es un numero el cual se puede obtener sumando sus divisores propios, y un divisor propio es aquel que n%d==0).
El caso es que este ejercicio lo tengo resuelto, pero lo he intentado "ampliar", haciendo que el cogido entre un bucle en el cual puedas introducir el numero sin que se cierre la ventana.
Código:
#include<iostream>
using namespace std;
int main(){
int numero;
int suma=0;
int divisor=1;
char opcion;
do {
cout<<"Introduzca un numero: "<<endl;
cin>>numero;
cout<<"Los divisores propios de "<<numero<<" son: " <<endl;
while(divisor<numero){
if(numero%divisor==0){
cout<<divisor<<" ";
suma+=divisor;
}
divisor++;
}
if(numero==suma)
cout<<"el numero es perfecto"<<endl;
else
cout<<"el numero no es perfecto"<<endl;
cout<<"Quieres poner otro numero [s/n]? "<<endl;
cin>>opcion;
}while(opcion=='s');
system("pause");
return 0;
}
Asi, lo he he hecho para ampliar el codio es introducir este do-while. Pero el problema es que cuando lo hago, la parte de la suma no me sale en la ventana, y no se porque.
Otra duda: tengo que poner siempre system("pause"); al final de cada codigo? es que si no lo pongo, la ventana se me cierra muy rapido y no puedo fer el output.
Utilizo el DevC++ como compilador.
Gracias