Générateur de nombres premiers

Il est impossible de ne générer que des nombres premiers au moyen d’un polynôme.
Mais il existe parfois des algorithmes qui donnent un coup de pouce.

Depuis longtemps, je m’intéresse à la découverte des nombres premiers, et j’ai mis au point le 9 janvier 2018 un algorithme intéressant.

  • Soient a, b, c, d, e des nombres premiers supérieurs à 2, donc tous impairs.
  • Alors lorsque ces nombres premiers sont inférieurs à 100, je trouve un nombre ((a*b*c)² – (d*e)²) – 1 qui a une probabilité 7 fois supérieure d’être un nombre premier par rapport à la proportion naturelle 1 / ln (((a*b*c)² – (d*e)²) – 1).
  • Je n’ai pas encore testé pour de plus grands nombres générés.

 

Exemple, je pose :

  • b = 67
  • c = 97
  • d = 13
  • e = 61
  • a = entre 3 inclus et 97 inclus, soit 25 nombres premiers à tester l’un après l’autre.

 

Sur 25 nombres générés par ce calcul, j’obtiens 7 assez grands nombres qui sont premiers !

  • ((7*67*97)² – (13*61)²) – 1 = 2 068 984 199 est premier
  • ((17*67*97)² – (13*61)²) – 1 = 12 205 864 439 est premier
  • ((19*67*97)² – (13*61)²) – 1 = 15 246 928 511 est premier
  • ((23*67*97)² – (13*61)²) – 1 = 22 342 744 679 est premier
  • ((31*67*97)² – (13*61)²) – 1 = 40 589 129 111 est premier
  • ((47*67*97)² – (13*61)²) – 1 = 93 300 906 359 est premier
  • ((89*67*97)² – (13*61)²) – 1 = 334 558 656 071 est premier

Normalement j’aurais dû avoir environ 4% de chance de tomber par hasard sur un nombre premier de 11 chiffres, mais là ça arrive à 28% avec le générateur. Bizarre, non ? Il faudrait explorer ça en profondeur.

Le test de Lucas-Lehmer

Jusqu’à présent, j’avais été généralement peu convaincu des textes francophones à propos des contenus sur Wikipedia, à quelques exceptions près. Très souvent, j’ai constaté que la Wikipedia anglophone est sensiblement plus détaillée que la Wikipedia francophone.

Par exemple, j’ai regardé http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Lucas-Lehmer_pour_les_nombres_de_Mersenne

Dans cette page, les explications de l’algorithme sont assez confuses. Cependant, j’ai trouvé un détail très intéressant dans l’article anglophone : http://en.wikipedia.org/wiki/Lucas%E2%80%93Lehmer_primality_test

Voici un pseudo-code :

// Determine if Mp = 2p − 1 is prime
Lucas–Lehmer(p)
    var s = 4
    var M = 2p − 1
    repeat p − 2 times:
        s = ((s × s) − 2) mod M
    if s = 0 return PRIME else return COMPOSITE

C’est concis, simple, et propre.
A partir de ce pseudo-code, on peut adapter celui-ci à tous les langages informatiques.

Voici le code Perl que j’ai conçu à partir du pseudo-code :

#!/usr/bin/perl
for ($p = 3; $p <= 100; $p++)
{
$s = 4;
$M = (2 ** $p) – 1;
$k = $p – 2;
for ($i = 1; $i <= $k; $i++)
{
$s = (($s * $s) – 2) % $M;
}
if ($s == 0)
{
print « $M = 2 ^ $p – 1 is prime \n »;
}
}

Cela fonctionne, mais rapidement à partir d’un nombre assez grand, c’est « arrondi » à une expression sous forme de puissances en base 10. Et cela fausse le reste des calculs…

Dont acte :

7 = 2 ^ 3 – 1 is prime
31 = 2 ^ 5 – 1 is prime
127 = 2 ^ 7 – 1 is prime
8191 = 2 ^ 13 – 1 is prime
131071 = 2 ^ 17 – 1 is prime
524287 = 2 ^ 19 – 1 is prime
2147483647 = 2 ^ 31 – 1 is prime
7.20575940379279e+16 = 2 ^ 56 – 1 is prime
2.88230376151712e+17 = 2 ^ 58 – 1 is prime
1.15292150460685e+18 = 2 ^ 60 – 1 is prime
4.61168601842739e+18 = 2 ^ 62 – 1 is prime

Ici, au-delà de 2 puissance 31 – 1, tout est faux.

Mais j’ai une arme secrète : j’ai transposé le code Perl en code Python, et Python ici prouve sa toute-puissance : on a enfin des nombres complets, chiffre par chiffre, sans limite pour les nombres entiers !

Voici le code source en langage Python :

#!/usr/bin/python
p=3
while (p <= 100000):
 s = 4
 M = (2 ** p) – 1
 k = p – 2
 i=1
 while (i <= k):
  s = ((s * s) – 2) % M;
  i=i+1
 if (s == 0):
  print « 2 ^ « , p,  » – 1 is prime »
 p=p+1

Attention cependant, il y a une indentation stricte à respecter dans le script en Python, il peut arriver qu’en collant le code ici l’identation ne soit pas apparente.

Voici les résultats du script Python :

2 ^  3  – 1 is prime
2 ^  5  – 1 is prime
2 ^  7  – 1 is prime
2 ^  13  – 1 is prime
2 ^  17  – 1 is prime
2 ^  19  – 1 is prime
2 ^  31  – 1 is prime
2 ^  61  – 1 is prime
2 ^  89  – 1 is prime
2 ^  107  – 1 is prime
2 ^  127  – 1 is prime
2 ^  521  – 1 is prime
2 ^  607  – 1 is prime
2 ^  1279  – 1 is prime
2 ^  2203  – 1 is prime
2 ^  2281  – 1 is prime
2 ^  3217  – 1 is prime
2 ^ 4253 – 1 is prime
2 ^ 4423 – 1 is prime

La série ci-dessus est 100% exacte.  😉

Plus le nombre à tester est grand, plus le temps de calcul est long…

Pour que ça aille beaucoup plus vite :

  • il faut un calcul informatique distribué, avec des milliers d’ordinateurs qui fonctionnent en commun
  • il faut un ordinateur quantique (le temps de calcul deviendrait alors linéaire et non plus exponentiel)

Je vais bientôt établir le temps de calcul en fonction de l’exposant premier des nombres de Mersenne pour un PC de bureau classique. L’article ici présent sera réédité à cette occasion.

 

Réédition de l’article le 30 décembre 2014 :

 

J’ai modifié le programme Python en y ajoutant le module time, afin d’obtenir un outil qui servira à l’horodatage de chaque ligne de résultat.

 

#!/usr/bin/python
import time
last = time.time()
p=3
while (p <= 100000):
 s = 4
 M = (2 ** p) – 1
 k = p – 2
 i=1
 while (i <= k):
  s = ((s * s) – 2) % M;
  i=i+1
 if (s == 0):
  now = time.time()
  chrono = now – last
  print « t = « , chrono, » s :: 2 ^ « , p,  » – 1 is prime »
 p=p+1

 

Voici le résultat, avec le temps écoulé depuis l’exécution du programme Python :

t =  0.0000138282775879  s :: 2 ^  3  – 1 is prime
t =  0.00019097328186  s :: 2 ^  5  – 1 is prime
t =  0.000243902206421  s :: 2 ^  7  – 1 is prime
t =  0.000355958938599  s :: 2 ^  13  – 1 is prime
t =  0.000600814819336  s :: 2 ^  17  – 1 is prime
t =  0.000720024108887  s :: 2 ^  19  – 1 is prime
t =  0.00141787528992  s :: 2 ^  31  – 1 is prime
t =  0.00507187843323  s :: 2 ^  61  – 1 is prime
t =  0.0113019943237  s :: 2 ^  89  – 1 is prime
t =  0.0172729492188  s :: 2 ^  107  – 1 is prime
t =  0.0260407924652  s :: 2 ^  127  – 1 is prime
t =  0.673669815063  s :: 2 ^  521  – 1 is prime
t =  1.09742283821  s :: 2 ^  607  – 1 is prime
t =  15.6437869072  s :: 2 ^  1279  – 1 is prime
t =  121.935223818  s :: 2 ^  2203  – 1 is prime
t =  138.3559618  s :: 2 ^  2281  – 1 is prime
t =  673.330420017  s :: 2 ^  3217  – 1 is prime
t =  1962.14330792  s :: 2 ^  4253  – 1 is prime
t =  2188.334692  s :: 2 ^  4423  – 1 is prime

 

  • A partir de ces données chronométriques, j’ai pu estimer que le temps de calcul nécessaire pour découvrir M48 qui est le 48e nombre premier de Mersenne est d’environ 300 années avec un PC de bureau ordinaire (AMD Athlon 64×2 dual core 4600+) si on lance le calcul au-delà de M47 tel que P est supérieur à 43112609 (en testant P jusqu’à 57885161) où M47 = 2^P – 1. Je ne peux donc pas me contenter d’un PC classique pour espérer découvrir de nouveaux nombres premiers de Mersenne encore inconnus à ce jour… Il faut donc au moins des centaines de microprocesseurs de PC pour pouvoir découvrir des nombres premiers de Mersenne dans des délais raisonnables.

 

En revanche, j’ai apporté une amélioration entre-temps : pour tout nombre premier de Mersenne (M), l’entier P est toujours un nombre premier impair (à l’exception de 2^2 – 1 = 3 où P est premier mais pair). J’ai donc ajouté un test de primalité de P.

#!/usr/bin/python
import time
last = time.time()
p=3
while (p <= 100000):
 d=2
 lim = int(p ** 0.5)
 produit = 1.000
 while (d <= lim):
  produit = produit * (p % d)
  if (d > 2):
   d=d+2
  if (d == 2):
   d=d+1
   if (produit != 0):
  s = 4
  M = (2 ** p) – 1
  k = p – 2
  i=1
  while (i <= k):
   s = ((s * s) – 2) % M;
   i=i+1
  if (s == 0):
   now = time.time()
   chrono = now – last
   print « t = « , chrono, » s :: 2 ^ « , p,  » – 1 is prime »
 p=p+2

 

Cette fois, avec la nouvelle amélioration du script Python, le calcul est nettement plus rapide.

Résultats :

t =  6.48498535156e-05  s :: 2 ^  3  – 1 is prime
t =  0.000236988067627  s :: 2 ^  5  – 1 is prime
t =  0.000296831130981  s :: 2 ^  7  – 1 is prime
t =  0.000382900238037  s :: 2 ^  13  – 1 is prime
t =  0.000496864318848  s :: 2 ^  17  – 1 is prime
t =  0.000589847564697  s :: 2 ^  19  – 1 is prime
t =  0.000875949859619  s :: 2 ^  31  – 1 is prime
t =  0.00200796127319  s :: 2 ^  61  – 1 is prime
t =  0.0035548210144  s :: 2 ^  89  – 1 is prime
t =  0.00507688522339  s :: 2 ^  107  – 1 is prime
t =  0.00654602050781  s :: 2 ^  127  – 1 is prime
t =  0.151687860489  s :: 2 ^  521  – 1 is prime
t =  0.218498945236  s :: 2 ^  607  – 1 is prime
t =  2.25717282295  s :: 2 ^  1279  – 1 is prime
t =  15.902233839  s :: 2 ^  2203  – 1 is prime
t =  18.2337968349  s :: 2 ^  2281  – 1 is prime
t =  62.6072969437  s :: 2 ^  3217  – 1 is prime
t =  181.48553586  s :: 2 ^  4253  – 1 is prime
t =  206.73643899  s :: 2 ^  4423  – 1 is prime

  • On n’a plus besoin d’attendre 300 années pour déterminer M48 en testant tous les P supérieurs à 43112609, mais seulement un peu plus de 20 ans environ. Mais 20 ans c’est toujours long comme délai. Le calcul distribué est ainsi toujours une nécessité.

 

© 2014 John Philip C. Manson

 

Le miracle du nombre 19 ?

19 est un nombre premier, un nombre ordinaire. Certains sont venus à dénaturer l’arithmétique pour en faire un usage mystique et pseudo-scientifique afin de revêtir les doctrines créationnistes d’une fausse légitimité scientifique.

En général, la science ça fait sérieux, alors certaines mouvances obscurantistes s’habillent de science pour paraître sérieuses, et de s’attribuer une forme de pouvoir et d’autorité sur les esprits crédules.

Par exemple, j’avais entendu parler des miracles du Coran. En l’état, je ne critique pas ce livre dans son contexte historique, cultuel et traditionnel. Le problème n’est pas de croire ou pas en Dieu. Le problème, en fait, est l’amalgame entre la religion et la science, et à ce niveau c’est une imposture.

Des miracles ? Par exemple j’ai entendu parler du nombre d’or (https://jpcmanson.wordpress.com/2013/03/19/a-quoi-sert-le-nombre-dor-en-mathematiques/). Ce nombre est une simple curiosité mathématique et esthétique popularisée dès la Renaissance, mais sans utilité scientifique. Néanmoins, le nombre d’or fait des adeptes de nos jours car certains affirment par exemple que la distance entre la Mecque et le pôle sud géographique terrestre divisée par la distance entre la Mecque et le pôle nord est un rapport égal au nombre d’or. À noter que les distances suivent la courbure terrestre, ce ne sont pas des distances rectilignes. Quand on effectue le calcul soigneusement à partir des coordonnées GPS, on constate que le rapport n’est pas égal au nombre d’or : je trouve 1,62477 au lieu de 1,618033989, cela correspond à un décalage de 19,6 km sur le globe terrestre. Et 19,6 km ce n’est pas «rien». Si ce n’est rien pour vous, alors parcourez cette distance à pied immédiatement.  😉

Voir ici : https://jpcmanson.wordpress.com/2012/02/27/geometrie-tridimensionnelle-et-coordonnees-gps/

Ensuite, en ce qui concerne le nombre 19, on devrait essayer aussi avec d’autres nombres afin de comparer si un nombre est plus probable qu’un autre. On devrait évaluer aussi si l’apparition de nombres particuliers est due au seul hasard. N’oublions pas non plus que quelques siècles plus tôt, les copistes construisaient des phrases selon des règles arithmétiques de façon à rendre toute copie difficile, cette méthode permettait de savoir si un texte avait été modifié. C’est un peu comme le watermarking actuel utilisé contre la copie pirate. Ainsi, quand un texte correspondait aux règles arithmétiques initiales, c’est qu’il n’avait pas été modifié et que donc c’était le texte d’origine. Dans l’Antiquité, plusieurs alphabets servaient aussi à écrire les chiffres (la gématria, avec l’alphabet hébreu) et même principe avec l’isopséphie (via l’alphabet grec). Quand un texte était numériquement stéganographié par son auteur, on pouvait vérifier son intégrité. L’histoire de la cryptographie est assez ancienne, ça remonte à l’Antiquité. Cependant, cette technique avait été dénaturée pour donner ce que nous connaissons actuellement sous le nom de numérologie, qui est une pseudo-science et une mystification. C’est ballot de croire que les nombres des textes anciens aient un sens mystique, c’est un peu comme si on disait aujourd’hui que les métadonnées contenues dans le code binaire des images photographiques numériques étaient des messages divins…

iconlol

Oh ça alors, en poésie les alexandrins contiennent tous 12 pieds de vers, c’est la preuve d’un miracle. Victor Hugo était un grand prophète.  😉

—-

Sources : histoire des sciences, cryptologie

© 2013 John Philip C. Manson

Calcul informatique – Théorie des nombres

  • Comme je cherche diverses façons de générer de grands nombres premiers, et vaguement inspiré par la conjecture de Syracuse d’après laquelle je reprends son problème à l’envers (avec des termes de plus en plus grands), j’ai mis au point un petit algorithme dont les résultats m’ont orienté vers une intéressante suite géométrique sur le web.

Voici mon algorithme :

  • Le premier terme est 3, c’est un nombre premier. C’est le plus petit nombre premier impair.
  • Je multiplie ce terme par 2 et j’ajoute 1.
  • Si le nouveau terme n’est pas premier, alors je reprends le premier terme puis je multiplie par 4 et j’ajoute 1.
  • Si toujours un résultat non premier, alors le premier terme est multiplié par 6 et j’ajoute 1… et ainsi de suite…
  • Mais si le nouveau terme est un nombre premier, il complète la suite et donc on affiche le résultat.
  • Le nouveau terme premier est ensuite rerouté vers la deuxième étape ci-dessus (donc on le teste en ×2 puis +1 et ainsi de suite).

Code source en langage Perl :

#!/usr/bin/perl

$n = 3;

for ($k = 0; $k <= 10000; $k++)
{
$t = ($n * 2 * $k) + 1;
$lim = $t – 1;
$prod = 2.0;

for ($div = 2; $div <= $lim; $div++)
{
$prod = $prod * ($t % $div);
}

if ($prod != 0)
{
$n = $t;
print « $n \n »;
$k = 0;
}

}

———————————————–

Voici le résultat :

3 7 29 59 709 2837 22697 453941 907883 21789193 130735159…

En recherchant une suite identique sur Google, j’ai eu une surprise :

http://oeis.org/A061092

Dans la suite trouvée sur le web, je trouve 7 termes identiques à la suite générée par mon algorithme : 3, 7, 29, 59, 709, 2837, 22697. Ce n’est pas un hasard. Cependant, les autres termes sont clairement différents.

D’après la page web, pour a(0) = 1, alors pour n > 0, nous avons a(n) = le plus petit nombre premier de la forme k×a(n – 1) + 1.

Intéressant.

Le grand mathématicien Cédric Villani pense que, dans la mathématique, il préexiste un ordre caché que nous devons découvrir. Je le pense aussi, particulièrement en ce qui concerne la génération algorithmique de nombres premiers, mais néanmoins il se peut aussi qu’il existe des ordres cachés qui restent indémontrables bien qu’ils soient vrais dans l’absolu. Les découvertes en maths sont des défis très difficiles, mais la ténacité des mathématiciens en vient à bout, ce n’est qu’une question de temps et de patience.

 

Remarque du 21 janvier 2013 :

En reprenant le code source Perl de mon programme, lorsque je remplace $t = ($n * 2 * $k) + 1; par $t = ($n * 2 * $k) – 1;, on obtient des entiers négatifs que l’on reconvertit par valeur absolue en entiers positifs. On obtient alors comme résultat une série de nombres entiers caractéristiques : ce sont des nombres de Mersenne de la forme 2N – 1 (aussi bien les nombres composés que les nombres premiers)

 

© 2013 John Philip C. Manson

La conjecture de Marcel Pagnol sur les nombres premiers

Le 4 juin 2012 au soir, j’ai vu une page qui racontait que le célèbre et grand écrivain Marcel Pagnol avait découvert une formule qui génère des nombres premiers.

Voici ce que disait Pagnol lui-même : «Je crois avoir trouvé une formule qui permet de fabriquer des nombres premiers : c’est la petite équation suivante : x et x+2 sont deux impairs consécutifs, comme 5 et 7 ou 17 et 19, etc.
x+(x+2)+x(x+2) = premier; 5+7+5×7 = 47. C’est à dire que la somme de deux impairs consécutifs et de leur produit est un premier. Nous avons donc une formule qui nous permet de construire des nombres premiers, et un moyen très simple de confirmer l’exactitude de nos calculs. 15+17+15×17 = 287 premier.»
Source : Inédits, Marcel Pagnol, textes recueillis par Jacqueline et Frédéric Pagnol, Pastorelly 1992.   (d’après le site http://www.guichetdusavoir.org/viewtopic.php?t=19484)

Étant très intéressé par cette anecdote, j’ai voulu explorer la problématique de près.

Dans un autre site, il est raconté que la conjecture de Pagnol s’énonce ainsi : si n est un entier impair, alors n + (n+1) + n(n+1) est un nombre premier.

On peut simplifier ainsi : f(n) = n² + 3n + 1.

Alors, j’en déduis que n est de la forme 2x+1, avec x un entier positif ou nul. Ce qui donne la forme f(x) = 4x² + 10x + 5.

J’ai ensuite conçu un programme qui détermine la proportion de nombres premiers f(x) parmi tous les entiers f(x) testés.

Voici le résultat ci-dessous :

x = 0 ; f(x) = 5 est premier ; proportion de nombres premiers de Pagnol = 1
x = 1 ; f(x) = 19 est premier ; proportion de nombres premiers de Pagnol = 1
x = 2 ; f(x) = 41 est premier ; proportion de nombres premiers de Pagnol = 1
x = 3 ; f(x) = 71 est premier ; proportion de nombres premiers de Pagnol = 1
x = 4 ; f(x) = 109 est premier ; proportion de nombres premiers de Pagnol = 1
x = 7 ; f(x) = 271 est premier ; proportion de nombres premiers de Pagnol = 0.75
x = 9 ; f(x) = 419 est premier ; proportion de nombres premiers de Pagnol = 0.7
x = 11 ; f(x) = 599 est premier ; proportion de nombres premiers de Pagnol = 0.666666666666667
x = 12 ; f(x) = 701 est premier ; proportion de nombres premiers de Pagnol = 0.692307692307692
x = 13 ; f(x) = 811 est premier ; proportion de nombres premiers de Pagnol = 0.714285714285714
x = 14 ; f(x) = 929 est premier ; proportion de nombres premiers de Pagnol = 0.733333333333333
x = 18 ; f(x) = 1481 est premier ; proportion de nombres premiers de Pagnol = 0.631578947368421
x = 21 ; f(x) = 1979 est premier ; proportion de nombres premiers de Pagnol = 0.590909090909091
x = 22 ; f(x) = 2161 est premier ; proportion de nombres premiers de Pagnol = 0.608695652173913
x = 23 ; f(x) = 2351 est premier ; proportion de nombres premiers de Pagnol = 0.625
x = 24 ; f(x) = 2549 est premier ; proportion de nombres premiers de Pagnol = 0.64
x = 26 ; f(x) = 2969 est premier ; proportion de nombres premiers de Pagnol = 0.62962962962963
x = 27 ; f(x) = 3191 est premier ; proportion de nombres premiers de Pagnol = 0.642857142857143
x = 29 ; f(x) = 3659 est premier ; proportion de nombres premiers de Pagnol = 0.633333333333333
x = 31 ; f(x) = 4159 est premier ; proportion de nombres premiers de Pagnol = 0.625
x = 32 ; f(x) = 4421 est premier ; proportion de nombres premiers de Pagnol = 0.636363636363636
x = 33 ; f(x) = 4691 est premier ; proportion de nombres premiers de Pagnol = 0.647058823529412
x = 34 ; f(x) = 4969 est premier ; proportion de nombres premiers de Pagnol = 0.657142857142857
x = 37 ; f(x) = 5851 est premier ; proportion de nombres premiers de Pagnol = 0.631578947368421
x = 42 ; f(x) = 7481 est premier ; proportion de nombres premiers de Pagnol = 0.581395348837209
x = 46 ; f(x) = 8929 est premier ; proportion de nombres premiers de Pagnol = 0.553191489361702
x = 47 ; f(x) = 9311 est premier ; proportion de nombres premiers de Pagnol = 0.5625
x = 49 ; f(x) = 10099 est premier ; proportion de nombres premiers de Pagnol = 0.56
x = 56 ; f(x) = 13109 est premier ; proportion de nombres premiers de Pagnol = 0.508771929824561
x = 59 ; f(x) = 14519 est premier ; proportion de nombres premiers de Pagnol = 0.5
x = 62 ; f(x) = 16001 est premier ; proportion de nombres premiers de Pagnol = 0.492063492063492
x = 64 ; f(x) = 17029 est premier ; proportion de nombres premiers de Pagnol = 0.492307692307692
x = 66 ; f(x) = 18089 est premier ; proportion de nombres premiers de Pagnol = 0.492537313432836
x = 68 ; f(x) = 19181 est premier ; proportion de nombres premiers de Pagnol = 0.492753623188406
x = 69 ; f(x) = 19739 est premier ; proportion de nombres premiers de Pagnol = 0.5
x = 71 ; f(x) = 20879 est premier ; proportion de nombres premiers de Pagnol = 0.5
x = 73 ; f(x) = 22051 est premier ; proportion de nombres premiers de Pagnol = 0.5
x = 76 ; f(x) = 23869 est premier ; proportion de nombres premiers de Pagnol = 0.493506493506494
x = 78 ; f(x) = 25121 est premier ; proportion de nombres premiers de Pagnol = 0.493670886075949
x = 79 ; f(x) = 25759 est premier ; proportion de nombres premiers de Pagnol = 0.5
x = 81 ; f(x) = 27059 est premier ; proportion de nombres premiers de Pagnol = 0.5
x = 86 ; f(x) = 30449 est premier ; proportion de nombres premiers de Pagnol = 0.482758620689655
x = 87 ; f(x) = 31151 est premier ; proportion de nombres premiers de Pagnol = 0.488636363636364
x = 89 ; f(x) = 32579 est premier ; proportion de nombres premiers de Pagnol = 0.488888888888889
x = 91 ; f(x) = 34039 est premier ; proportion de nombres premiers de Pagnol = 0.489130434782609
x = 92 ; f(x) = 34781 est premier ; proportion de nombres premiers de Pagnol = 0.494623655913978
x = 93 ; f(x) = 35531 est premier ; proportion de nombres premiers de Pagnol = 0.5
x = 97 ; f(x) = 38611 est premier ; proportion de nombres premiers de Pagnol = 0.489795918367347
x = 102 ; f(x) = 42641 est premier ; proportion de nombres premiers de Pagnol = 0.475728155339806
x = 108 ; f(x) = 47741 est premier ; proportion de nombres premiers de Pagnol = 0.458715596330275
x = 109 ; f(x) = 48619 est premier ; proportion de nombres premiers de Pagnol = 0.463636363636364
x = 114 ; f(x) = 53129 est premier ; proportion de nombres premiers de Pagnol = 0.452173913043478
x = 117 ; f(x) = 55931 est premier ; proportion de nombres premiers de Pagnol = 0.449152542372881
x = 119 ; f(x) = 57839 est premier ; proportion de nombres premiers de Pagnol = 0.45
x = 121 ; f(x) = 59779 est premier ; proportion de nombres premiers de Pagnol = 0.450819672131148
x = 122 ; f(x) = 60761 est premier ; proportion de nombres premiers de Pagnol = 0.455284552845528
x = 123 ; f(x) = 61751 est premier ; proportion de nombres premiers de Pagnol = 0.459677419354839
x = 128 ; f(x) = 66821 est premier ; proportion de nombres premiers de Pagnol = 0.449612403100775
x = 131 ; f(x) = 69959 est premier ; proportion de nombres premiers de Pagnol = 0.446969696969697
x = 133 ; f(x) = 72091 est premier ; proportion de nombres premiers de Pagnol = 0.447761194029851
x = 143 ; f(x) = 83231 est premier ; proportion de nombres premiers de Pagnol = 0.423611111111111
x = 144 ; f(x) = 84389 est premier ; proportion de nombres premiers de Pagnol = 0.427586206896552
x = 146 ; f(x) = 86729 est premier ; proportion de nombres premiers de Pagnol = 0.428571428571429
x = 147 ; f(x) = 87911 est premier ; proportion de nombres premiers de Pagnol = 0.432432432432432
x = 148 ; f(x) = 89101 est premier ; proportion de nombres premiers de Pagnol = 0.436241610738255
x = 152 ; f(x) = 93941 est premier ; proportion de nombres premiers de Pagnol = 0.431372549019608
x = 156 ; f(x) = 98909 est premier ; proportion de nombres premiers de Pagnol = 0.426751592356688
x = 164 ; f(x) = 109229 est premier ; proportion de nombres premiers de Pagnol = 0.412121212121212
x = 174 ; f(x) = 122849 est premier ; proportion de nombres premiers de Pagnol = 0.394285714285714
x = 176 ; f(x) = 125669 est premier ; proportion de nombres premiers de Pagnol = 0.395480225988701
x = 178 ; f(x) = 128521 est premier ; proportion de nombres premiers de Pagnol = 0.396648044692737
x = 179 ; f(x) = 129959 est premier ; proportion de nombres premiers de Pagnol = 0.4
x = 181 ; f(x) = 132859 est premier ; proportion de nombres premiers de Pagnol = 0.401098901098901
x = 186 ; f(x) = 140249 est premier ; proportion de nombres premiers de Pagnol = 0.39572192513369
x = 188 ; f(x) = 143261 est premier ; proportion de nombres premiers de Pagnol = 0.396825396825397
x = 189 ; f(x) = 144779 est premier ; proportion de nombres premiers de Pagnol = 0.4
x = 192 ; f(x) = 149381 est premier ; proportion de nombres premiers de Pagnol = 0.398963730569948
x = 197 ; f(x) = 157211 est premier ; proportion de nombres premiers de Pagnol = 0.393939393939394
x = 203 ; f(x) = 166871 est premier ; proportion de nombres premiers de Pagnol = 0.387254901960784
x = 208 ; f(x) = 175141 est premier ; proportion de nombres premiers de Pagnol = 0.382775119617225
x = 209 ; f(x) = 176819 est premier ; proportion de nombres premiers de Pagnol = 0.385714285714286
x = 213 ; f(x) = 183611 est premier ; proportion de nombres premiers de Pagnol = 0.383177570093458
x = 223 ; f(x) = 201151 est premier ; proportion de nombres premiers de Pagnol = 0.370535714285714
x = 224 ; f(x) = 202949 est premier ; proportion de nombres premiers de Pagnol = 0.373333333333333
x = 227 ; f(x) = 208391 est premier ; proportion de nombres premiers de Pagnol = 0.37280701754386
x = 233 ; f(x) = 219491 est premier ; proportion de nombres premiers de Pagnol = 0.367521367521368
x = 236 ; f(x) = 225149 est premier ; proportion de nombres premiers de Pagnol = 0.367088607594937
x = 238 ; f(x) = 228961 est premier ; proportion de nombres premiers de Pagnol = 0.368200836820084
x = 242 ; f(x) = 236681 est premier ; proportion de nombres premiers de Pagnol = 0.366255144032922
x = 244 ; f(x) = 240589 est premier ; proportion de nombres premiers de Pagnol = 0.36734693877551
x = 246 ; f(x) = 244529 est premier ; proportion de nombres premiers de Pagnol = 0.368421052631579
x = 247 ; f(x) = 246511 est premier ; proportion de nombres premiers de Pagnol = 0.370967741935484
x = 249 ; f(x) = 250499 est premier ; proportion de nombres premiers de Pagnol = 0.372
x = 251 ; f(x) = 254519 est premier ; proportion de nombres premiers de Pagnol = 0.373015873015873
x = 252 ; f(x) = 256541 est premier ; proportion de nombres premiers de Pagnol = 0.375494071146245
x = 254 ; f(x) = 260609 est premier ; proportion de nombres premiers de Pagnol = 0.376470588235294
x = 258 ; f(x) = 268841 est premier ; proportion de nombres premiers de Pagnol = 0.374517374517374
x = 263 ; f(x) = 279311 est premier ; proportion de nombres premiers de Pagnol = 0.371212121212121
x = 264 ; f(x) = 281429 est premier ; proportion de nombres premiers de Pagnol = 0.373584905660377
x = 271 ; f(x) = 296479 est premier ; proportion de nombres premiers de Pagnol = 0.367647058823529
x = 273 ; f(x) = 300851 est premier ; proportion de nombres premiers de Pagnol = 0.368613138686131
x = 274 ; f(x) = 303049 est premier ; proportion de nombres premiers de Pagnol = 0.370909090909091
x = 279 ; f(x) = 314159 est premier ; proportion de nombres premiers de Pagnol = 0.367857142857143
x = 288 ; f(x) = 334661 est premier ; proportion de nombres premiers de Pagnol = 0.359861591695502
x = 293 ; f(x) = 346331 est premier ; proportion de nombres premiers de Pagnol = 0.357142857142857
x = 296 ; f(x) = 353429 est premier ; proportion de nombres premiers de Pagnol = 0.356902356902357
x = 297 ; f(x) = 355811 est premier ; proportion de nombres premiers de Pagnol = 0.359060402684564
x = 298 ; f(x) = 358201 est premier ; proportion de nombres premiers de Pagnol = 0.361204013377926
x = 301 ; f(x) = 365419 est premier ; proportion de nombres premiers de Pagnol = 0.360927152317881
x = 302 ; f(x) = 367841 est premier ; proportion de nombres premiers de Pagnol = 0.363036303630363
x = 304 ; f(x) = 372709 est premier ; proportion de nombres premiers de Pagnol = 0.363934426229508
x = 307 ; f(x) = 380071 est premier ; proportion de nombres premiers de Pagnol = 0.363636363636364
x = 308 ; f(x) = 382541 est premier ; proportion de nombres premiers de Pagnol = 0.365695792880259
x = 311 ; f(x) = 389999 est premier ; proportion de nombres premiers de Pagnol = 0.365384615384615
x = 319 ; f(x) = 410239 est premier ; proportion de nombres premiers de Pagnol = 0.359375
x = 321 ; f(x) = 415379 est premier ; proportion de nombres premiers de Pagnol = 0.360248447204969
x = 323 ; f(x) = 420551 est premier ; proportion de nombres premiers de Pagnol = 0.361111111111111
x = 326 ; f(x) = 428369 est premier ; proportion de nombres premiers de Pagnol = 0.36085626911315
x = 334 ; f(x) = 449569 est premier ; proportion de nombres premiers de Pagnol = 0.355223880597015
x = 337 ; f(x) = 457651 est premier ; proportion de nombres premiers de Pagnol = 0.355029585798817
x = 359 ; f(x) = 519119 est premier ; proportion de nombres premiers de Pagnol = 0.336111111111111
x = 363 ; f(x) = 530711 est premier ; proportion de nombres premiers de Pagnol = 0.335164835164835

  • Je remarque que pour x > 363, il n’existerait aucun nombre premier f(x). Ainsi, la formule de Pagnol produit une quantité finie de nombres premiers. Le programme continue le calcul jusqu’à x = 100000, mais l’écran semble ne laisser qu’un dernier résultat qui est x = 363, le nombre f(x) = 530711 étant a priori le plus grand nombre premier de la formule de Pagnol.
  • Il existe 122 nombres premiers de la forme 4x²+10x+5.
  • La proportion globale de nombres premiers f(x) par rapport à la totalité des x testés est de 1/3 environ, c’est-à-dire que pour la forme 4x² + 10x + 5, il y a une chance sur trois que cela soit un nombre premier, et cela ne vaut que dans l’intervalle 0 ≤ x ≤ 363.
  • Je constate que les nombres premiers de Pagnol sont répertoriés ici : http://oeis.org/A155737

* © 2012 John Philip C. Manson