LISTE DES NOMBRES PREMIERS

NHenry Messages postés 15129 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 juin 2024 - 30 mars 2006 à 08:21
 Utilisateur anonyme - 1 déc. 2007 à 19:00
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/36803-liste-des-nombres-premiers

Utilisateur anonyme
1 déc. 2007 à 19:00
Pour être plus précis et pour raccourcir considérablement le temps de recherche tu peux te limiter à la racine carré du nombre que tu veux tester, en plus ton code est pas très clair...
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
1 avril 2006 à 20:58
Bonjour,

En ce qui concerne l'algorithme mathématique, on peut dire qu'il en existe des biens mieux programmés si VBF... et, je trouve dommage que pour une simple recherche de nb premier, d'avoir un listing si long... je crois que tu devrais revoir la partie concernant la recherche des nb premiers... Faut mieux savoir bien programmer l'essentiel, que toute la floriture autour...

Bonne programmation et bon courage,

Amicalement,
Us.
chewbaka62 Messages postés 67 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 30 juillet 2006
1 avril 2006 à 11:06
Oui je sais mais c'est pour m'imprégner des nouveautés de la plateforme .Net que j'essaie d'être rigoureux.

Merci quand-même
NHenry Messages postés 15129 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 juin 2024 159
31 mars 2006 à 14:51
Tu peux remplacer System.Int32 par Integer.
chewbaka62 Messages postés 67 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 30 juillet 2006
31 mars 2006 à 14:47
Bonjour Hijakhakker,

Tout à fait d'accord avec toi. Erreur de débutant tout simplement.
Merci pour ta remarque.
hijakhakker Messages postés 7 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 17 décembre 2007
30 mars 2006 à 22:45
For intCompteur1 = 1 To CInt(strNombre) Step 1
If intCompteur Mod intCompteur1 = 0 Then
intDiviseur += 1

tu fais du test meme sur des nombre paire puisqu step=1?
pourquoi ne pas seulement diviser juste sur les nombre impaire inferieur au nombre saisi divisé par 2? tu peut economiser jusqu'a 75%du temps avec d autre methode
chewbaka62 Messages postés 67 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 30 juillet 2006
30 mars 2006 à 16:10
Pour BruNews...

Bonjour,

j'ai bien vérifié que le sujet ne fera pas doublon et je savais bien qu'il le ferait. Mais c'est volontaire si j'ai posté ce code car le but pour un débutant est d'apprendre des autres. Ceci dit, si ça pose tant de problème de poster de manière itérative un même sujet, je ne le ferai plus. Encore désolé de vous avoir dérangé.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 mars 2006 à 13:21
http://www.google.com/custom?domains=vbfrance.com&q=%22nombre+premier%22&sa=Rechercher&sitesearch=vbfrance.com

http://www.google.com/custom?domains=vbfrance.com&q=%22nombres+premiers%22&sa=Rechercher&sitesearch=vbfrance.com

Je pense que le sujet des nombres premiers a largement été traité sur vbfrance, il n'est pas indispensable d'en rajouter.
Avant de poser une source, il convient de vérifier si elle ne fera pas doublon (voir plus comme ici).
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 mars 2006 à 12:57
Tu peux même ne boucler que jusqu'à Nb/2 puisque le reste ne donnera que des diviseurs inférieurs à 2
chewbaka62 Messages postés 67 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 30 juillet 2006
30 mars 2006 à 11:43
Bonjour,

Merci pour ta remarque mais comme justement ma boucle interne commence avec le chiffre 1, celui-ci est d'office pris comme diviseur de tous les nombres. Donc, 6 aura 3 diviseurs ( 1,2 et 3 ) et ne sera donc pas pris comme nombre premier. Tu peux tester le programme et constater qu'il donne rigoureusement tous les nombres premiers. Je retiens néanmoins ta suggestion pour gagner en temps de calcul car je suis ici pour apprendre.

Joseph
NHenry Messages postés 15129 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 juin 2024 159
30 mars 2006 à 08:21
Bonjour

# ' Si le nombre de diviseur est de 2, il s'agit d'un nombre premier et on l'ajoute à la ListBox
# If intDiviseur = 2 Then
# lstNombresPremiers.Items.Add(intCompteur)
# End If

6 a 2 et 3 comme diviseur, mais il n'est pas un nombre premier.

De plus, ta boucle
For intCompteur = 1 To CInt(strNombre) Step 1
Test tous les nombres de 1 à Nb-1
Alour que tu peux commencer à 2 et passer a 3, 5, 7, 9 etc, cela te fera gagner bcp de temps de calcul.
Rejoignez-nous