Le crible de Courvoisier

samedi 4 mars 2023
par  Alain BUSSER , Franck JEAN-ALBERT

Tout est parti de la définition de cette fonction récursive sur N+×N :

Kmoins(x,0) = (x+1)²
Kmoins(x,y+1)=Kmoins(x,y)+2x+1

Gabriel Courvoisier a alors émis la conjecture suivante :

Si n n’est pas dans l’ensemble des valeurs de Kmoins, alors 4×n-1 est premier.

Il a alors créé une nouvelle fonction récursive :

Kplus(x,0) = x(x+1)
Kplus(x,y+1)=Kplus(x,y)+2x+1

et émis une seconde conjecture :

Si n n’est pas dans l’ensemble des valeurs de Kplus, alors 4×n+1 est premier.

Voici le script de Fabrice Nativel pour tester la conjecture en Python :

from math import sqrt

# Fonction annexe : construction des premiers jusqu'à N par la méthode du crible d'Erastothène
def crible(n):
    premiers = [True]*n
    for nb in range(2,int(sqrt(n+1))):
        if premiers[nb]:
            k=2
            while k*nb<n:
                premiers[k*nb]=False
                k+=1
    return {k for k in range(2,n) if premiers[k]}


# construction ensemble kmoins jusqu'au maximum indiqué
kmax = 1000000
kmoins = {(x+1)**2+y*(2*x+1) for x in range(1,int(sqrt(kmax))) for y in range(int((kmax-(x+1)**2)/(2*x+1))+1)}


# verification de la propriété : "Si n n'est pas dans kmoins alors 4n-1 est premier"
premiers = crible(4*kmax-1)
n = 1
erreur = False
print("Ensembles construits -- début des tests")
while n<kmax:
    if n not in kmoins and 4*n-1 not in premiers:
        erreur=True
        print(f"Erreur détectée : {n} n'est pas dans kmoins et pourtant {4*n-1} n'est pas premier")
    n += 1
if erreur:
    print(f"Erreur détectée")
else:
    print("Tous les tests passés !")

Autres conjectures de Gabriel Courvoisier :

Si n = Kmoins(x,y) alors 4n-1 = (2x+1)(2x+4y+3)
Si n = Kplus(x,y) alors 4n+1 = (2x+1)(2x+4y+1)

Enfin, une conjecture liée aux précédentes :

Si m n’est pas un Kmoins(x,y) alors 2m+1(2m+2-1) est parfait et le second facteur est un nombre premier de Mersenne.


Commentaires