Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - calcolare se un numero è perfetto
Forum - C/C++ - calcolare se un numero è perfetto

Avatar
ilpazzo (Normal User)
Newbie


Messaggi: 2
Iscritto: 14/07/2010

Segnala al moderatore
Postato alle 17:46
Mercoledì, 14/07/2010

Codice sorgente - presumibilmente C++

  1. #include "stdafx.h"
  2. #include <iostream>             //biblioteca standard per l'input/output
  3. #include <cmath>        //biblioteca funzioni matematiche
  4. #include <string>               //biblioteca per funzioni stringhe
  5.  
  6. using namespace std;
  7. void main()
  8. {
  9.         int div = 0;
  10.         int n;
  11.         int som = 0;
  12.         cin>>n;
  13.        
  14.         for ( div = 1; div < n; div++)
  15.                
  16.                 if (n%div == 0)
  17.  
  18.                         cout << " i divisori sono: "<< div<<"\n" ;
  19.  
  20.                        
  21.         som += div;
  22.         cout<<div;
  23.  
  24.                         if (som=n)
  25.                         cout << "il numero è perfetto ";
  26.                         else
  27.                         cout << "il numero non è perfetto ";
  28.  
  29. }



questo programma dovrebbe calcolare se un numero è perfetto o non...con il 6 funziona ma con gli altri numeri no...ringrazio chi può aiutarmi!


EDIT by HeDo: Codice non racchiuso tra tag code

Ultima modifica effettuata da HeDo il 14/07/2010 alle 17:59
PM Quote
Avatar
Premoli (Normal User)
Pro


Messaggi: 108
Iscritto: 25/06/2009

Segnala al moderatore
Postato alle 17:59
Mercoledì, 14/07/2010
Ciao!!!

ti sei saltato un po' di parentesi qui:

Testo quotato


    for ( div = 1; div < n; div++)
        
        if (n%div == 0)

            cout << " i divisori sono: "<< div<<"\n" ;

            
    som += div;
    cout<<div;



e così non fai un confronto ma un'assegnazione:

Testo quotato


if (som=n)



per vedere se due numeri sono uguali in C si usa ==

prova un po' a vedere se riesci a fare qualcosa, inoltre il main restituisce un intero quindi non deve essere void main(), ma int main();
Codice sorgente - presumibilmente Plain Text

  1.  


Ultima modifica effettuata da Premoli il 14/07/2010 alle 18:00
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 18:00
Mercoledì, 14/07/2010

PM Quote
Avatar
ilpazzo (Normal User)
Newbie


Messaggi: 2
Iscritto: 14/07/2010

Segnala al moderatore
Postato alle 18:10
Mercoledì, 14/07/2010

Codice sorgente - presumibilmente C++

  1. #include "stdafx.h"
  2. #include <iostream>             //biblioteca standard per l'input/output
  3. #include <cmath>        //biblioteca funzioni matematiche
  4. #include <string>               //biblioteca per funzioni stringhe
  5.  
  6. using namespace std;
  7. void main()
  8. {
  9.         int div = 0;
  10.         int n;
  11.         int som = 0;
  12.         cin>>n;
  13.        
  14.        
  15.                 for ( div = 1; div < n; div++)
  16. {
  17. if (n%div == 0)
  18. {
  19. cout << " i divisori sono: "<< div<< "\n" ;
  20.  
  21.  
  22. som += div;
  23.  
  24. }
  25. }
  26.  
  27.  
  28.                         if (som==n)
  29.                         cout << "il numero è perfetto ";
  30.                         else
  31.                     cout << "il numero non e' perfetto " ;
  32. }



questo programma funziona ora correttamente...mancava qualke parentesi e un uguale alla fine.

EDIT by HeDo: Ancora manca il tag code, alla prossima violazione volano i ban

Ultima modifica effettuata da HeDo il 14/07/2010 alle 18:19
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:40
Mercoledì, 14/07/2010
"biblioteca standard" ?

Questa mi mancava ... !


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 23:50
Mercoledì, 14/07/2010
Testo quotato

Postato originariamente da nessuno:

"biblioteca standard" ?

Questa mi mancava ... !


:ot::rotfl::rotfl::rotfl::ot:

PM Quote
Avatar
Premoli (Normal User)
Pro


Messaggi: 108
Iscritto: 25/06/2009

Segnala al moderatore
Postato alle 1:09
Giovedì, 15/07/2010
Testo quotato

Postato originariamente da nessuno:

"biblioteca standard" ?

Questa mi mancava ... !



Non si finisce mai di imparare LOL :rotfl::rotfl:

PM Quote