Hola a todos, hace menos de una setmana que estoy aprendiendo a programar con C++, debido a que en la universiad lo necesito para hacer calculos numericos, y bueno, me he cogido un libro de la biblioteca, Problemas Resueltos de Programación en Lenguaje C++ y he ha salido un problema que necessito vuestra ayuda.
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.
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
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 [Seleccionar]
#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