0/5 (4 avis)
Snippet vu 5 445 fois - Téléchargée 37 fois
// Par coockiesch, 16.02.03 #include <iostream> #include <windows.h> #include <cmath> #include <fstream> using namespace std; bool EstPremier(double nb); int main() { double max; char choix = 'n'; cout<<"Jusqu'a quel nombre voulez-vous recherche des nombres premiers? "<<endl; cin>>max; cout<<"Voulez-vous generer un fichier (ca rendra le calcul plus long) (o/n)? "; cin>>choix; cout<<"---------------------------------------------------------------"<<endl; if(choix == 'o' || choix == 'O') { double retour = 1.0, temp; ofstream out("Nombres premiers.txt"); if(!out) { cout<<"Impossible d'écrire dans le fichier\n"; system("pause"); cout<<"\n"; } for(double i = 2;i < max; i++) { if(EstPremier(i)) { cout<<i<<endl; out << i << " "; ++retour; temp = retour / 10; if(temp - floor(temp) == 0) out<< "\n"; } } out.close(); cout<<"Fichier ecrit"<<endl; } else { for(double i = 2;i < max; i++) { if(EstPremier(i)) { cout<<i<<endl; } } } system("pause"); } bool EstPremier(double nb) { double temp; if(nb == 2) return true; temp = nb/2; if(temp - floor(temp) == 0) return false; double i = 3.0; while(i*i <= nb) { temp = nb / i; if(temp - floor(temp) == 0) return false; i++; } return true; }
5 mars 2004 à 11:39
Pour manipuler des très grands nombres de manière exacte, il existe des librairies très utiles : GMP, NTL, etc. GMP est mondialement connue et très bien conçue mais l'aide est en anglais uniquement.
D'ailleurs si quelqu'un connaissait cette librairie, je voudrais bien qu'il m'aide (jojo29118@hotmail.com) !!!
Ces librairies permettent de manipuler des nombres de taille arbitraire (des millions de chiffres ou plus) ! C'est vraiment une mine d'or ! (et c'est d'autant plus dommage de ne pas pouvoir les utiliser faute d'aide conséquente en français...)
17 févr. 2003 à 22:43
17 févr. 2003 à 09:22
16 févr. 2003 à 22:28
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.