Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,estou com um probleminha nesse exercício aqui:
"Fazer um programa para encontrar todos os pares de números amigáveis entre 1 e 100000. Um par de números é amigável[/size]
quando cada um deles é igual à soma dos divisores do outro."[/size]
Bem eu como nuca tinha me deparado com uma atividade dessas fiz assim:[/size]
#include <stdio.h>
int main ()
{
long int x,z,y,y1;
x=y=y1=0;
for (y=0,x=0;x<=100000;x++)
{
for (z=0;z<x;z++) if (x%z==0) y+=z;
for (z=0;z<y;z++) if (y%z==0) y1+=z;
if (y==y1) printf ("(%d %d) ",x,y);
}
return 0;
}
Obviamente o pc não consegue fazer a leitura de três laços for de 100000 um em seguida do outro ai da um treco(que eu axo que seria a falta de memoria talvez,ou o super uso dela forçando um subscrevimento na memoria << são apenas suposições),mas o fato é que não consigo pesar em um outro método para fazer esse exercício;Poderiam me ajudar?me dando pelo menos o raciocínio logico para faze-lo...Carregando comentários...