NOMBRES PREMIERS

Messages postés
340
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
14 février 2005
- - Dernière réponse : cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
- 6 mai 2006 à 10:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/5286-nombres-premiers

cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250 -
Beaucoup de maladresses pour le calcul, la boucle while peut aisément être remplacée par une for, le code est illisible, non commenté et tu n'utilise aucune des optimisations possibles.
5/10 parce qu'il fonctionne et pour le calcul du temps
Baffff
Messages postés
5
Date d'inscription
mardi 10 décembre 2002
Statut
Membre
Dernière intervention
24 février 2004
-
Vi, j'ai fait à peu près le meme dans le train c't'aprèm (je l'ai pas sous les yeux), on peut aussi commencer avec x = 2 pour éviter de tester la division par 2 pour chaque nombre
(en modifaint 2 ou 3 trucs)
Bricomix
Messages postés
340
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
14 février 2005
-
En faites je me suis complètement trompé, alors je l'ai remodifié, et voilà le nouveau code (environ 5% plus rapide que l'original) ... voilà le nouveau code :

Dim a As Long, n As Long, x As Long, y As Double

ReDim t(nbr + 2)

a = 3 'on demarre direct en testant 3
n = 1
y = 2 'sera la racine carrée du nombre à tester
t(1) = 2

While n <= nbr
x = 1
While x <= n And t(x) < y
If a Mod t(x) = 0 Then GoTo NFirst
x = x + 1
Wend
n = n + 1
t(n) = a
NFirst:
a = a + 2
y = Sqr(a + 1)
Wend
Baffff
Messages postés
5
Date d'inscription
mardi 10 décembre 2002
Statut
Membre
Dernière intervention
24 février 2004
-
Heu, Bricomix, au fait, vérifie quand même car ça marche jusqu'à 7, après il me trouve que 9 est un nb premier, y'a un binz....
J'ai pas le temps de coder pour l'instant, je regarde demain.
Baffff
Messages postés
5
Date d'inscription
mardi 10 décembre 2002
Statut
Membre
Dernière intervention
24 février 2004
-
Vi, j'ai bien pensé à un truc comme ça, mais en bon étudiant modèle, on m'a dit d'éviter les GOTO, alors, j'évitais les GOTO. Ceci dit effectivement c'est 2 fois plus rapide. Par contre, je peux pas changer la source, y faut que je recrée un compte à chaque fois que je veux me connecter, comprend pas... Mon login va finir par être long :-). Merci à tous pour votre aide
A+