Bonjour,
Je dois faire un exercice en python pour le lycée sur le petit théorème de Fermat mais je bloque à la première question...
L'énoncé c'est: Soit A et P deux entiers naturels tels que P ne divise pas A. Si P est premier, alors A^(P-1)-1 est divisible par P. La réciproque de ce théorème est fausse (cas de 561). Ainsi, ce théorème permet de montrer qu'un entier N n'est pas premier: en effet, si on trouve A compris entre 2 et N-1 tel que A^(N-1)-1 n'est pas divisible par N alors N n'est pas premier. On va tout de même s'appuyer sur ce théorème pour déterminer si un nombre N est probablement premier ou pas. Soit A € [[2;N-1]]. Si A^(N-1)-1 est divisible par N alors N est probablement premier on dira que N est A-probablement premier.
Donc la question est: Ecrire une fonction "test" qui prend en argument N, A compris en 2 et N-1 et qui renvoie True si N est probablement premier et False sinon.
Voilà ce que j'ai fait mais j'ai toujours False qui sort:
Merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 def test(n,a): if a>=2 and a<=n-1: if a**(n-1)-1 % n != 0: print ('False'), else: print ("True") else: print("Le théorème ne s'applique pas.")
Partager