vereis estoy intentando hacer un programa en el cual yo le introduzca un intervalo de numeros y me diga los numeros perfectos q hay dentro del mismo
pero no se q coj.... pasa q no funciona
![muy furioso [+furioso]](/images/smilies/nuevos/furioso.gif)
, llevo mas de 3 horas dando vueltas al codigo y no veo el error
ayudarme pq estoy al borde de la desesperacion
os pego el codigo
#include <iostream>
using namespace std;
bool numeroperfecto (int n)
{
int i, h, resto, suma;
bool a;
resto=0;
suma=0;
a=false;
h=n;
for(i=1;i==(n-1);i++){
resto=(n%i);
if (resto==0){
suma=(suma+i);}
if (suma==h){
a=true;}
}
return(a);
}
int main()
{
int n1, n2, i;
bool a,b;
a=true;
do{
cout<<"Introduce el primer numero: \n";
cin>>n1;
cout<<"Introduce el segundo numero: \n";
cin>>n2;
if ((n2<n1) || (n1<0)){
cout<<"Datos incorrectos, vuelve a introducirlos\n";
b=false;}
else{
b=true;} }while(b==false);
for(i=n1;i<=n2;i++){
a=numeroperfecto(i);
if (a==true) cout<<i<<" ";
}
system("pause");
}
salu2 y gracias
pd: el codigo tiene copyleft asi q cuidadin