Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Numeri Perfetti
Forum - C/C++ - Numeri Perfetti

Avatar
twixt3r (Normal User)
Newbie


Messaggi: 8
Iscritto: 13/06/2006

Segnala al moderatore
Postato alle 15:53
Lunedì, 03/11/2008
Ho scritto questo programma che dice se un numero n è perfetto (la somma dei divisori è pari al numero stesso).
E funziona.
Ecco il codice:
Codice sorgente - presumibilmente C/C++

  1. #include <iostream.h>
  2. #include <stdio.h>
  3.  
  4. main()
  5. {  
  6.     int div[1000],n,a=0,i,sum,k;
  7.    
  8.  
  9.    n=28;
  10.     for(i=1; i<=n/2; i++)
  11.     {if(n%i==0)
  12.     {div[a]=i;
  13.     a++;
  14.         }
  15.         }
  16.   sum=0;
  17.         for(i=0;i<a;i++)
  18.         {
  19.         sum=sum+div[i];}
  20.      
  21.         if(sum==n)
  22.         {cout<<n<<" e' perfetto\n";}
  23.  
  24. getchar();
  25. getchar();
  26. }



Ora però, voglio creare un ciclo che controlli questo per i nuemri da 1 a 100.
Dunque modifico il codice in:
Codice sorgente - presumibilmente C/C++

  1. #include <iostream.h>
  2. #include <stdio.h>
  3.  
  4. main()
  5. {  
  6.     int div[1000],n,a=0,i,sum,k;
  7.    
  8.  
  9. for(n=1;n<100;n++)
  10. {
  11.     for(i=1; i<=n/2; i++)
  12.     {if(n%i==0)
  13.     {div[a]=i;
  14.     a++;
  15.         }
  16.         }
  17.   sum=0;
  18.         for(i=0;i<a;i++)
  19.         {
  20.         sum=sum+div[i];}
  21.      
  22.         if(sum==n)
  23.         {cout<<n<<" e' perfetto\n";}
  24. }
  25. getchar();
  26. getchar();
  27. }



Ma come apporto questa modifica non va più.
Chen iu elp mi?

PM Quote
Avatar
gioser (Normal User)
Pro


Messaggi: 111
Iscritto: 03/10/2008

Segnala al moderatore
Postato alle 16:31
Lunedì, 03/11/2008
perche' devi inizializzare a dentro al ciclo.

ciao :)

PM Quote