Algorithme nombre premier

Xelopante -  
 Xelopante -
Bonjour,

Je suis en train de faire un TP en python qui demande de créer un script avec une fonction, qui demande de rentrer un chiffre et de dire si il est premier ou non.

Voici ce que j'ai écrit :

prems = True

def EsTuPremier(nombre, prems):
    i = 2
    while((i<nombre) and (nombre % i != 0)) :
        i = i+1
    if(i==nombre) :
        prems = True
    else :
        prems = False
    return prems

nombre = int(input("Choisissez un nombre"))
if (nombre == 1):
    print("Le nombre est premier")
else:
    EsTuPremier(nombre, prems)
    if (prems == True):
        print("Le nombre est premier")
    else:
        print("Le nombre n'est pas premier")


J'ai l'impression que ça fonctionne globalement sauf lors de la vérification à la fin qui retourne forcément que le chiffre est premier car le booléen prems revient toujours sur la valeur True.

Quelqu'un aurait une idée pour corriger ça ?

Merci d'avance
A voir également:

2 réponses

jee pee Messages postés 41512 Date d'inscription   Statut Modérateur Dernière intervention   9 715
 
1
trifou
 
Bonsoir,

La variable prems est totalement inutile.

def EsTuPremier(nombre):
    i = 2
    while((i<nombre) and (nombre % i != 0)) :
        i = i+1
    return i== nombre

nombre = int(input("Choisissez un nombre"))
if (nombre == 1):
    print("Le nombre est premier")
else:
    if EsTuPremier(nombre):
        print("Le nombre est premier")
    else:
        print("Le nombre n'est pas premier")
1
Xelopante
 
Je ne savais pas qu'il était possible d'utiliser un booléen de cette manière.
Merci beaucoup
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
Dommage de donner ainsi la solution du TP, plutôt que de permettre à l'étudiant d'apprendre par lui-même.
0
Xelopante > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Je suis d'accord, mais c'est toujours mieux que rien je suppose
0