Oppure

Loading
03/11/08 14:53
twixt3r
Ho scritto questo programma che dice se un numero n è perfetto (la somma dei divisori è pari al numero stesso).
E funziona.
Ecco il codice:
#include <iostream.h>
#include <stdio.h>

main()
{   
    int div[1000],n,a=0,i,sum,k;
   

   n=28;
    for(i=1; i<=n/2; i++)
    {if(n%i==0)
    {div[a]=i;
    a++;
        }
        }
  sum=0;
        for(i=0;i<a;i++)
        {
        sum=sum+div[i];}
      
        if(sum==n)
        {cout<<n<<" e' perfetto\n";}

getchar();
getchar();
}


Ora però, voglio creare un ciclo che controlli questo per i nuemri da 1 a 100.
Dunque modifico il codice in:
#include <iostream.h>
#include <stdio.h>

main()
{   
    int div[1000],n,a=0,i,sum,k;
   

for(n=1;n<100;n++)
{
    for(i=1; i<=n/2; i++)
    {if(n%i==0)
    {div[a]=i;
    a++;
        }
        }
  sum=0;
        for(i=0;i<a;i++)
        {
        sum=sum+div[i];}
      
        if(sum==n)
        {cout<<n<<" e' perfetto\n";}
}
getchar();
getchar();
}


Ma come apporto questa modifica non va più.
Chen iu elp mi?
aaa
03/11/08 15:31
gioser
perche' devi inizializzare a dentro al ciclo.

ciao :)
aaa