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:
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.")
Merci d'avance pour votre aide.