Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Joan.Agusti

#1
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.

#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 :)