Rechercher les premiers nombres premiers

Soyez le premier à donner votre avis sur cette source.

Vue 10 129 fois - Téléchargée 529 fois

Description

Tout est dans le titre ce petit programme permet de chercher beaucoup de nombre premier. On part de 2 et on ne s'arrète pas. On peut enregistrer/charger tous ces nombres premier dans/depuis un fichier texte.
En ce qui concerne la méthode pour trouver les nombres premiers, on vérifie que les restes des divisions du nombre testé par tous les nombres premiers inferieur ou égaux à la racine du nombre tester sont differents de 0. Si c'est le cas alors le nombre est premier alors on l'ajoute dans le tableau conteant tous les nombres premiers trouvés. (voir code ci-dessous)

Source / Exemple :


procedure trouver;
var
racine:real;
begin
 repeat
  k := 0;
  racine := power(i,0.5);
  while ((i mod t[k]<> 0) and (t[k]<= racine) and (not(stop))) do
   begin
    inc(k);
    Application.ProcessMessages;
   end;
  if t[k]>racine then
   begin
    inc(l);
    SetLength(t,l);
    t[l-1]:= i;
    if form1.Afficherlesnombrestrouver1.Checked then
     begin
      form1.ListBox1.Items.Add(inttostr(i));
      if form1.Resterenfindeliste1.Checked then
       form1.listbox1.TopIndex := form1.listbox1.Items.Count-1;
     end;
   end;
  if not(stop) then
   inc(i);
 until stop;
end;

Conclusion :


N'hesiter pas à critiquer!

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
54
Date d'inscription
jeudi 13 novembre 2003
Statut
Membre
Dernière intervention
25 avril 2012

Pour accélérer la recherche, les nombres suivants ne peuvent pas être premiers :

- les nombres pairs (divisibles par 2)
- les nombres finissant par 5 ou par 0 (divisibles par 5)
- les nombres dont la somme des chiffres les constituant
est multiple de 3 (divisibles par 3)

Notons toutefois que les nombres 2, 3 et 5 sont premiers.
Messages postés
34
Date d'inscription
mardi 31 août 2004
Statut
Membre
Dernière intervention
11 juillet 2006

Salut axar, (désolé pour le retard)
alors en utilisant la fonction time (pas super précis mais tanpis) je trouve les nombres premier de 1 a 1000000 (le dernier étant 999983):
en 1s sans afficher les nombres sur la form
en 18s en les affichant sur la form

Merci à nono pour les conseils d'optimisation! ;)
Messages postés
19
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
12 juillet 2012

salut je voudrait juste savoir combien de temps mts tu a trouvé les nombres premiers de 1 à 1 000 000. merci
Messages postés
34
Date d'inscription
mardi 31 août 2004
Statut
Membre
Dernière intervention
11 juillet 2006

C'est parceque j'utilise un composant qui s'appelle XPManifest. C'est juste pour donner un effet Windows Xp!
Donc tu peut enlever le composant de la fiche le programme marchera quand même!
Ciao
Messages postés
1
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
15 mai 2006

Bonjour

erreur TXPManifest not found

D'où vient l'erreur
J'ai un delphi 6

Merci
Afficher les 10 commentaires

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.