 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Socrate Guest
|
Posted: Wed Jun 23, 2004 6:26 am Post subject: cherche code source |
|
|
bonjours je cherche le code source de programmes permettant de trouver des
nombres premiers mais je ne trouve pas grand chose sous google
merci d'avance
|
|
| Back to top |
|
 |
Fabien LE LEZ Guest
|
Posted: Wed Jun 23, 2004 8:35 am Post subject: Re: cherche code source |
|
|
On Wed, 23 Jun 2004 08:26:19 +0200, "Socrate"
<socratesdream54 (AT) hotmail (DOT) com>:
| Quote: | bonjours je cherche le code source de programmes permettant de trouver des
nombres premiers mais je ne trouve pas grand chose sous google
|
Uh ?
Y'a l'air au contraire d'avoir pas mal de choses :
http://www.google.com/search?q=%22prime+numbers%22+%22C%2B%2B%22&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8
Après, il faut savoir ce que tu cherches exactement : quelques
"petits" nombres premiers ? Beaucoup de petits nombres premiers ? Des
nombres premiers assez gros pour servir dans les algorithme de
cryptage ?
Le mieux est d'aller sur fr.comp.algorithmes pour connaître le nom de
l'algorithme qui convient à ton problème, puis de rechercher ce nom
sur Google.
--
schtroumpf schtroumpf
|
|
| Back to top |
|
 |
Alexandre Guest
|
Posted: Wed Jun 23, 2004 5:12 pm Post subject: Re: cherche code source |
|
|
"Socrate" <socratesdream54 (AT) hotmail (DOT) com> a écrit dans le message de
news:40d9228b$0$656$a3f2974a (AT) nnrp1 (DOT) numericable.fr...
| Quote: | bonjours je cherche le code source de programmes permettant de trouver des
nombres premiers mais je ne trouve pas grand chose sous google
merci d'avance
un peu HS ici, ça concerne plutot fr.comp.algorithmes. |
Un algo simple mais pas très efficace (très bien pour de petits nombres) :
le cribble d'erathostène (pas sur de l'orthographe).
Le principe : tu considère que tous les nombres sont premiers.
Tu sais que 2 est premier.
Tu calcules les multiples de 2. Ils ne sont, par définition, pas premiers.
Et ainsi de suite...
Ce qui donnerait en C++ :
class Crible
{
std::vector<bool> EstPremier;
public:
Crible(int NMax):EstPremier(NMax+1,true){}
void Calcule();
void Affiche()
{
for(int i=2;i
if(EstPremier[i])
cout<
}
};
void Crible::Calcule()
{
for(int i=2; i < EstPremier.size() / 2 ; i++) // la moitié suffit
{
//--- calcule tous le multiples de i : ils ne sont pas premiers !
for(int j=2; (i*j)
EstPremier[i*j] = false;
}
}
et voila, en peu de lignes, comment calculer n nombres premiers. Attention :
algo assez long si tu en veux beaucoup !!!
Mais à ma connaissance c'est le plus simple à comprendre et à implémenter.
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|