30/09/12 12:50
Heisenberg
salve a tutti. Dopo molte pene ho implementato questo codice, che mi dice se un numero inserito è un numero primo, oppure no ed in tal caso mi restituisce la lista di tutti i suoi divisori. Però ho alcuni problemi: innanzitutto volevo sapere se ci fosse un modo più sensato per fare in modo che se introduco qualcosa come "la vispa teresa" o "0.0034" o "'$%" o "45ty", il codice non vada in crash e mi dica semplicemente che ho inserito dello schifo, ed in secondo luogo vorrei sapere se ci sono errori vari di qualche tipo..
#include <iostream>
#include <stdlib.h>
using namespace std;
void chiedi_primo()
{
long long p;
char c;
float f;
int divisori = 0;
cout << "Digita un numero intero positivo: \n\n", cin >> p;
if (p == c || p == f || p == 0)
cout << "\nCos'e' questo !?\n\n", exit(0);
else if (p < 0)
cout << "\nNo! Voglio un numero positivo!\n\n";
else if (p < 2)
cout << "\nQuesto non e' un numero primo.\n\n";
else if (p == 2)
cout<<"\n" << p << " e' il numero primo piu' piccolo!\n\n";
else {
for (int q = 2; q <= p/2; q++)
if (p%q == 0) {
cout << p << " = " << q << " * " << p / q << endl;
divisori++;
}
if (divisori > 0)
cout <<"\nQuesto dimostra che "<< p <<" non e un numero primo.\n\n";
else
cout <<"\n"<< p <<" e' un numero primo!\n\n";
}
}
int main()
{
while (true)
chiedi_primo();
return 0;
}
Il punto è che compilato, funziona alla perfezione.. HELP!!
Grazie a tutti!!
#include <iostream>
#include <stdlib.h>
using namespace std;
void chiedi_primo()
{
long long p;
char c;
float f;
int divisori = 0;
cout << "Digita un numero intero positivo: \n\n", cin >> p;
if (p == c || p == f || p == 0)
cout << "\nCos'e' questo !?\n\n", exit(0);
else if (p < 0)
cout << "\nNo! Voglio un numero positivo!\n\n";
else if (p < 2)
cout << "\nQuesto non e' un numero primo.\n\n";
else if (p == 2)
cout<<"\n" << p << " e' il numero primo piu' piccolo!\n\n";
else {
for (int q = 2; q <= p/2; q++)
if (p%q == 0) {
cout << p << " = " << q << " * " << p / q << endl;
divisori++;
}
if (divisori > 0)
cout <<"\nQuesto dimostra che "<< p <<" non e un numero primo.\n\n";
else
cout <<"\n"<< p <<" e' un numero primo!\n\n";
}
}
int main()
{
while (true)
chiedi_primo();
return 0;
}
Il punto è che compilato, funziona alla perfezione.. HELP!!
Grazie a tutti!!
aaa