Questo topic e' stato chiuso dal moderatore.
05/09/11 10:03
BionicGod
Salve a tutti, avevo pensato di scrivere in C++ il criterio di Eratostene che avevo precedentemente fatto, e con successo, in C# 3.5.
Però ho un problema, viene restituito "Errore di virgola mobile" appena avvio il programma. Non sono ancora riuscito a determinare la riga che ha generato l'eccezione. Qualcuno potrebbe aiutarmi? Il codice non sarà scritto perfettamente, ma, per il momento, mi interessa individuare l'errore.
Né Code::Blocks né Geany mi hanno aiutato, infatti entrambi utilizzano lo stesso compilatore (gcc). Vi prego aiutatemi!
Il codice è:
Però ho un problema, viene restituito "Errore di virgola mobile" appena avvio il programma. Non sono ancora riuscito a determinare la riga che ha generato l'eccezione. Qualcuno potrebbe aiutarmi? Il codice non sarà scritto perfettamente, ma, per il momento, mi interessa individuare l'errore.
Né Code::Blocks né Geany mi hanno aiutato, infatti entrambi utilizzano lo stesso compilatore (gcc). Vi prego aiutatemi!
Il codice è:
#include <iostream> #include <cmath> using namespace std; bool Calcola(int Numero) { bool Primo = true; int numeriPrimi[Numero]; bool tempPrimo = true; int Pos = 0; for (int x = 2; x <= ceil(sqrt(Numero)); x++) { if (x > sqrt(Numero)) { for (int n = 2; n <= sqrt(x); n++) { tempPrimo = true; if (x % n == 0) { tempPrimo = false; break; } if (tempPrimo) numeriPrimi[Pos++] = x; } } else numeriPrimi[Pos++] = x; } for (int x = 0; x <= Pos; x++) if (Numero % numeriPrimi[x] == 0) Primo = false; return Primo; } int main() { for (int x = 0; x < 100; x++) { if (Calcola(x)) cout << x << " è un numero primo"; } return (0); }
aaa