TROUVER DES NOMBRES PREMIERS

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 10 août 2006 à 08:40
vbPink Messages postés 23 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 30 août 2006 - 10 août 2006 à 14:35
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/39018-trouver-des-nombres-premiers

vbPink Messages postés 23 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 30 août 2006
10 août 2006 à 14:35
Merci à vous deux, ce code n'est pas ma priorité mais je vais voir ce que je peux faire pour l'optimiser.
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
10 août 2006 à 11:27
Bonjour,

Le code est bien présenté, mais il est très optimisable. Les remarques de Darksidious sont justes...
IL y a beaucoup de code de ce type sur les nombres premiers, je pense qu'il faudrait un peu plus innover. Par exemple, essayer de programmer le crible de Sundaram, n'est pas plus difficile pour un débutant et permetterai de justement de ne pas avoir un algorithme glouton !

... de plus, bien programmé, il devrait être au moins aussi rapide que le plus rapide...

Amicalement,
Us.
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 août 2006 à 08:40
Il existe quand même un algorithme bien plus efficace (bien que lui aussi glouton) : n'essayer de diviser les nombres que par des nombres premiers inférieur à la racine des nombres :
Pas la peine de tester si 17 est divisible par 4, 6, 8, 10, 12, 14 et 16 s'il est pas divisible par 2 par exemple... Ca évite énormément de divisions !
=> Stocker les nombres premiers déjà trouvés dans un tableau, et n'essayer de diviser le prochain nombre à tester par les éléments du tableau. Ca augmentera déjà pas mal les performances, bien qu'il ne s'agisse sûrement pas de l'algorithme optimal connu à ce jour !

DarK Sidious
Rejoignez-nous