hola a todos!!
bueno mi problema es el siguiente estoy haciendo una función q ...me tiene que generar "n"... números mágicos...el profesor nos dijo que un número mágico es aquel que sumando sus divisores menos el mismo ....es el mismo número...ejemplo
divisores números
1 + 2 + 3 = 6
1 + 2 + 4 + 7 + 14 = 28
ya entonces yo hice mi código... hice una función que me dice si un número es mágico o no ....y a partir de esto en otra funcion estoy generando los mágicos ...pero algo anda mal creo ......porque si le pongo que quiero 4 magicos me salen los cuatro .le pongo 5 y ahi se queda el programa ...la verdad no le encuentro el error haber si me ayudan ...gracias!!
bool magicoss(int n)
{
int d;
int magico=0;
for(int i=1; i<n;i++)
{
d=n/i;
if(n%i==0)
{
magico=magico+i;
}
}
if(magico==n)
return true ;
else
return false;
}
void generarmagicos(int y)
{
int cont=0;
for(int i=1;cont<y;i++)
if(magicoss(i)==1)
{
cout<<i<<endl;
cont++;
}
}
int main()
{
int x;
cout<<"Ingrese numero"<<endl;
cin>>x;
generarmagicos(x);
}