Bonjour à toutes à tous .
je souhaiterai mettre en machine le test de primalité de Mersenne .
Petit rappel du cours.
un nombre de Mersenne est un entier de la forme avec p premier .
Mp est premier ssi Mp est divisible par Sp ou la suite est définie par :
et
alors j'ai opté pour découper ce programme en trois fonctions , notez par ailleurs que , la fonction "primalite" qui est un test de primalité naïve , est déjà belle et bien programmé , mais si je prend des p de plus en plus grand je ferai appel aux test probabiliste éventuellement , mais l'idée serait de comprendre d'abord comment ça marche de manière simple .
voici ce que je propose :
def NombreMersenne(p):
Mp=2**p-1
if primalite(p) is True:
return Mp
else :
return False
def SuiteMersen(p):
s=4
for i in range (3, p+1):
s=s**2-2
return (s)
def PrimaliteMersen(p):
while primalite(p) is True:
if (SuiteMersen(p)%NombreMersenne(p)) == 0:
return True
else:
return False
return "erreur: rentrer un nombre premier"
ce programme marche pour des nombres de Mersenne avec p=3,5,7,13
après ça ne rame , aussi pour p= 2 je rencontre des difficulté ,
merci pour vos retours