Le polynôme d'Euler P(n)=n
2+n+41 permet de n'obtenir que des nombres premiers lorsque n prend les valeurs consécutives n=0, 1, 2, ..., 39.
Les nombres premiers p tels que n
2+n+p soit un nombre premier pour tous les p-1 naturels n = 0, ...,(p-2) sont appelés 'nombres chanceux' par François Le Lionnais. Ces nombres chanceux forment la suite
A014556 de Neil A. Sloane.
Quels sont les polynômes P(n)=a n
2+b n+ c qui permettent pour n=0,1,2,...,K-1 d'obtenir K nombres premiers distincts ?
Le programme pprime.c, disponible sur cette page, permet de trouver quelques uns de ces polynômes, en particulier les records du moment :
Q(n) = 36 n
2 - 810 n + 2753 et Q(44-n) = 36 n
2 - 2358 n + 36809 permettent de déterminer successivement 45 nombres premiers.
Un choix arbitraire a été opéré parmi les très nombreux polynômes produits, aussi certains polynômes comme 2n
2 + 29 (Legendre) ou n
2 + n + 17 ne figurent pas sur cette page pais on peut trouver d'autres polynômes dans un
fichier texte.
Cliquez sur les polynômes du tableau ci-dessous pour voir les nombres premiers engendrés.
Téléchargez et compilez le [
Programme C] de construction des polynômes de la table ci-dessus. (Au début du code de ce programme, la constitution d'un crible de nombres premiers).
L'exécutable :
pprime (déjà compilé linux pentium debian 2)
Un concours [
Al Zimmermann's Programming Contests] doté de 500$ de prix est organisé depuis le 13 mars 2006 et se termine le 13 juin 2006.
La description du concours par Ed Pegg Jr se trouve sur la page [
Prime Generating Polynomials].
De manière abrégée et donc très incomplète :
Il s'agit de trouver pour chaque degré n de 1 à 10, trois polynômes f(x) = a
n*x
n+a
n-1*x
n-1+...+a
1*x+a
0.
Pour chacun des trois polynômes on calcule f(0), f(1), ... (polynôme 1) ou leurs valeurs absolues (polynômes 2 et 3), en dénombrant les nombres premiers rencontrés. L'arrêt s'effectue dès qu'on rencontre un nombre composé (polynômes 1 et 2) ou lorsque x atteint une limite maximale imposée (polynôme 3) (la limite est telle que x
d<2
64, sa valeur précise est donnée dans un tableau).
Un score est calculé en effectuant la somme des valeurs calculées pour les différents polynômes de degrés d :
(nombre de premiers produits par f(x)) + (1/log(10+abs(f(0)*f(1)*..*f(d))))
Le meilleur score éventuellement possible est 30 et à l'heure où j'écris cette page, le meilleur score déjà atteint est 26.6314.
Chaque semaine un prix de 10$ est attribué.