CONJECTURE DE GOLDBACH

Messages postés
2
Date d'inscription
mardi 13 juillet 2004
Statut
Membre
Dernière intervention
12 octobre 2009
- - Dernière réponse : Skanenruf
Messages postés
38
Date d'inscription
dimanche 12 octobre 2008
Statut
Membre
Dernière intervention
30 juin 2010
- 12 oct. 2009 à 19:28
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/50675-conjecture-de-goldbach

philm_be
Messages postés
2
Date d'inscription
mardi 13 juillet 2004
Statut
Membre
Dernière intervention
12 octobre 2009
-
Pour la fonction "primalite", rien ne sert de partir de n-1 me semble-t-il. Il suffit de commencer à la moitié de n. Tout ce qui est supérieur ne pourra forcément pas être un diviseur.
Philippe
philbar71
Messages postés
70
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
5 juillet 2013
-
Au passage je te signale que Julien39 travaille aussi sur la conjecture de Goldbach :
http://www.vbfrance.com/codes/TESTER-CONJECTURE-GOLDBACH-TOUT-NOMBRE-PAIR-SUPERIEUR-EST_32365.aspx

Bon courage pour la suite de tes recherches, mais ne néglige quand même pas ton français car dans un CV ou dans d'autres domaines c'est dans la qualité de l'écriture qu'on détectecte les meilleurs candidats.
jmocaro
Messages postés
14
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
19 octobre 2007
-
bonjour,
je pense que la deuxième boucle est inutile puisque de toute façon j=n-i
pourquoi boucler pour chercher un tel 'j' ?...
Il reste à tester que j(=n-i) est premier.
Cette première boucle peut s'arrêter à la moitié car i+j=j+i.

La primalité se teste de 2 jusqu'à la racine de n, c'est plus restrictif que la moitié.

Jean-Maurice
Skanenruf
Messages postés
38
Date d'inscription
dimanche 12 octobre 2008
Statut
Membre
Dernière intervention
30 juin 2010
-
Merci beaucoup pour vos réponses à tous les trois, j'en ai profité pour amélioré certains points :

- J'ai commencé par optimiser mon test de primalité avec comme limites du processus itératif : 2 et math.sqrt(n). (Merci Jmocaro et Philm_be).
- J'ai supprimé la seconde boucle de mon algorithme sur la conjecture forte (effectivement c'était inutile).
- J'ai ajouté un algorithme (sur la même base) pour la conjecture faible en utilisant cette fois deux boucles imbriquées ainsi que la méthode soustractive (n-i-j).

PS. Je rappelle que la conjecture faible est la même que la conjecture classique (forte) de Goldbach sauf que c'est pour les impairs supérieurs à 7 qui sont donc (on a conjecturé) égaux à une somme de trois nombres premiers (impairs).
jmocaro
Messages postés
14
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
19 octobre 2007
-
re bonjour,

on en finit jamais avec les améliorations,
cependant j'en propose une autre: le test de primalité coûte cher.
On pourrait imaginer de stocker si on a testé la primalité d'un entier, et son résultat. Dans une ou 2 collections par exemple (je suis VB6-iste...)
Ceci serait très profitable pour la conjecture faible.

à +

jmocaro
Skanenruf
Messages postés
38
Date d'inscription
dimanche 12 octobre 2008
Statut
Membre
Dernière intervention
30 juin 2010
-
On pourrait ajouter la liste des 100 premiers nombres premiers au début du test de primalité mais est-ce que le nombre de conditions testées n'est pas plus gros que le nombre de cas testés de façon itérative ? En mettant une condition n<100 pour exclure des tests tous les gros nombres.

If n < 100 Then If n 2 Or n 3 Or n = 5 Or n = 7 Or n = 11 Or n = 13 Or n = 17 Or n = 19 Or n = 23 Or n = 29 Or n = 31 Or n = 37 Or n = 41 Or n = 43 Or n = 47 Or n = 53 Or n = 59 Or n = 61 Or n = 67 Or n = 71 Or n = 73 Or n = 79 Or n = 83 Or n = 89 Or n = 97 Then Return True
End If