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++ - scomposizione numeri primi
Forum - C/C++ - scomposizione numeri primi

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
salve ragazzi...secondo voi c'è qualche errore nel mio codice :

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <ctime>
  3. #include <cstdlib>
  4.  
  5. using namespace std;
  6. int primo(int , int);
  7. int main (){
  8.    
  9.     int num, div=2, ris, cont=0;
  10.    
  11.     cout << "inserisci un numero: \n";
  12.     cin >> num;
  13.    
  14.     ris = primo(num, div);
  15.     if (ris==1)//costrutto if condizionale...........
  16.     cout << "il numero e' primo quindi come divisori ammette solo se stesso e l'unita'...!\n";
  17.     else {//inizio else
  18.         while (num!=1){// inizio del ciclo while.....
  19.            
  20.            if (num%div==0){// apertura if.
  21.         num /= div;
  22.         cont++;
  23.        }//fine if
  24.         else {
  25.             if (cont!=0){
  26.             cout<<div<<"^"<<cont<<"*";
  27.         }    
  28.             cont=0;
  29.                   div++;
  30.         }  
  31.      
  32.      }
  33.      cout<<div<<"^"<<cont;
  34.      //fine while.
  35. }   // fine else............
  36.    
  37.     system("pause");
  38.     return 0;
  39.     }  
  40.    
  41.    
  42.     int primo(int num, int div){
  43.        
  44.         while ((num/div)!=1){
  45.             if (num%div==0)
  46.             return 0;
  47.             else if (num%div!=0)
  48.             div++;
  49.             }
  50.         return 1;
  51.        
  52.         }




PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 10:16
Sabato, 21/11/2009

beh, a parte che è totalmente inefficiente perchè fai delle cose senza un filo logico:

1) Controlli se è primo
2) Se non è primo lo fattorizzi

Capisci che questa tua logica cade se nel punto 1 per dire che è primo lo fattorizzi?

inoltre per cercare i fattori di un numero primo basta dividerlo per tutti i numeri primi trovati minori della sua radice quadrata.

leggiti a fondo questo: http://it.wikipedia.org/wiki/Numero_primo


PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 10:49
Sabato, 21/11/2009
io avevo fatto questo ragionamento:

vedo se è primo, se è primo è inutile scomporlo in altri fattori perchè è divisibile per se stesso e per l'unità...nel caso non è primo entra nell'else e lo scompone...non capisco perchè è sbagliato mi spieghi meglio??:hail:

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 14:35
Sabato, 21/11/2009
Testo quotato

Postato originariamente da Riuzaki:

io avevo fatto questo ragionamento:

vedo se è primo, se è primo è inutile scomporlo in altri fattori perchè è divisibile per se stesso e per l'unità...nel caso non è primo entra nell'else e lo scompone...non capisco perchè è sbagliato mi spieghi meglio??:hail:



chiarito su msn

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 15:27
Domenica, 22/11/2009
Salve,

forse andro' un po' :ot: , e forse sembrera' poco opportuno il mio intervento data la semplicita' del problema posto da Riuzaki.
Non voglio essere polemico, pero' in generale mi sembra inopportuno chiudere una discussione con un semplice

chiarito su msn

in quanto la soluzione di un problema posto da un utente potrebbe essere utile anche ad altri, per cui sarebbe opportuno in futuro concludere la discussione postando la soluzione a cui si giunge.
Ciao. :k:

Luigi

Ultima modifica effettuata da gigisoft il 22/11/2009 alle 15:29
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 16:10
Domenica, 22/11/2009

Riuzaki posterà il programma sistemato :)

anche se non vedo cosa ci sia da postare in "soluzione che si giunge", anche perchè è un programma banale che abbiamo fatto tutti...


PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 16:33
Domenica, 22/11/2009
Testo quotato

Postato originariamente da HeDo:


Riuzaki posterà il programma sistemato :)

anche se non vedo cosa ci sia da postare in "soluzione che si giunge", anche perchè è un programma banale che abbiamo fatto tutti...




l'ho precisato che il problema qui' postato era semplice, il mio voleva essere un discorso generale, volevo evitare che la cosa si ripetesse in altri post in cui il problema sia più complesso.

Ciao. :k:

Luigi

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 17:10
Domenica, 22/11/2009
Testo quotato

Postato originariamente da gigisoft:

l'ho precisato che il problema qui' postato era semplice, il mio voleva essere un discorso generale, volevo evitare che la cosa si ripetesse in altri post in cui il problema sia più complesso.

Ciao. :k:

Luigi



nei problemi più complessi fidati che sarei il primo a chiedere questa cosa, in questo caso banale è stato a mio avviso superfluo :)

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 16:18
Lunedì, 23/11/2009
Io un programma simile non l'ho mai fatto... mi sarebbe piaciuto vedere come e' stato risolto.


Il mio blog: https://piero.dev
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo