()
Newbie
Messaggi:
Iscritto:
|
salve ragazzi...secondo voi c'è qualche errore nel mio codice :
Codice sorgente - presumibilmente C++ |
#include <iostream> #include <ctime> #include <cstdlib> using namespace std; int primo(int , int); int main (){ int num, div=2, ris, cont=0; cout << "inserisci un numero: \n"; cin >> num; ris = primo(num, div); if (ris==1)//costrutto if condizionale........... cout << "il numero e' primo quindi come divisori ammette solo se stesso e l'unita'...!\n"; else {//inizio else while (num!=1){// inizio del ciclo while..... if (num%div==0){// apertura if. num /= div; cont++; }//fine if else { if (cont!=0){ cout<<div<<"^"<<cont<<"*"; } cont=0; div++; } } cout<<div<<"^"<<cont; //fine while. } // fine else............ system("pause"); return 0; } int primo(int num, int div){ while ((num/div)!=1){ if (num%div==0) return 0; else if (num%div!=0) div++; } return 1; }
|
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
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
|
|
()
Newbie
Messaggi:
Iscritto:
|
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??
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
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?? |
chiarito su msn |
|
gigisoft (Member)
Guru
Messaggi: 696
Iscritto: 11/10/2008
|
Salve,
forse andro' un po' , 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.
Luigi
Ultima modifica effettuata da gigisoft il 22/11/2009 alle 15:29 |
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
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...
|
|
gigisoft (Member)
Guru
Messaggi: 696
Iscritto: 11/10/2008
|
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.
Luigi |
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
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.
Luigi |
nei problemi più complessi fidati che sarei il primo a chiedere questa cosa, in questo caso banale è stato a mio avviso superfluo |
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Io un programma simile non l'ho mai fatto... mi sarebbe piaciuto vedere come e' stato risolto.
|
|