Dimension7
09-08-2009, 19:04
Sto facendo per esercizio un programmino che mi dice se un numero è primo o no, solo che a parte per i primi due if (cioè per i<=0, i=1,2,3) non funziona, mi stampa sempre "Non è un numero primo". Il problema quindi credo sia nel for, magari nell'uso errato del modulo...
Metodo:
bool isNumPrimo(int i){
if(i<=0){
cout << "Numero minore o uguale a 0" << endl;
return false;
}
if(i==1 || i==2 || i==3){
return true;
}
for(int j=2;j<i;i++){
if(i%j==0){
return false;
}
}
return true;
}
Main:
int main(int argc, char *argv[])
{
int num;
cout << "Questo programma verifica se un numero è primo o no" << endl;
cout << "Inserisci il numero" << endl;
cin >> num;
bool risposta=isNumPrimo(num);
if(risposta){
cout << num << " è un numero primo" << endl;
}
else{
cout << num << " non è un numero primo" << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
Metodo:
bool isNumPrimo(int i){
if(i<=0){
cout << "Numero minore o uguale a 0" << endl;
return false;
}
if(i==1 || i==2 || i==3){
return true;
}
for(int j=2;j<i;i++){
if(i%j==0){
return false;
}
}
return true;
}
Main:
int main(int argc, char *argv[])
{
int num;
cout << "Questo programma verifica se un numero è primo o no" << endl;
cout << "Inserisci il numero" << endl;
cin >> num;
bool risposta=isNumPrimo(num);
if(risposta){
cout << num << " è un numero primo" << endl;
}
else{
cout << num << " non è un numero primo" << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}