IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

petit théorème de Fermat


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut petit théorème de Fermat
    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.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Salut,

    Lorsque vous écrivez "a**(n-1)-1 % n", ce ne sont pas les caractères "espace" qui rendent une opération plus prioritaire par rapport à une autre. C'est le langage qui définit la "précédence" des opérateurs.
    La seule façon de s'en sortir ici est d'ajouter des parenthèses: "(a**(n-1)-1) % n".
    Vous pouvez aussi préférer la forme "(a**n - a) % n" qui est plus lisible (enfin, c'est ce que je pense).

    - W

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 54
    Points : 98
    Points
    98
    Par défaut re
    souvent les parenthèses sont la solution de maints problèmes ...

Discussions similaires

  1. [Petite requête] Nombre de transactions par jour
    Par Braim dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/04/2003, 10h53
  2. Réponses: 3
    Dernier message: 28/02/2003, 17h06
  3. Réponses: 3
    Dernier message: 16/12/2002, 16h12
  4. [TP]TP s'affiche en tout petit sous w2000
    Par spiroucarolo dans le forum Turbo Pascal
    Réponses: 8
    Dernier message: 21/10/2002, 16h36
  5. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo