Plus grand diviseur premier
sk_
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, je dois écrire une fonction qui renvoie le plus grand diviseur premier du nombre choisi. pour ca, j'ai d'abord fait une fonction pour determiner si le nombre est premier ou pas:
ensuite j'ai fait ma deuxième fonction:
apres, le problème, se trouve au niveau du while. quand j'ai mis while n%i !=0, la variable n prend la valeur du nouveau alors qu'il devrait prendre la valeur du n initial.
par exemple, si je mets
ca va verifier d'abord si 10 est premier. et puisque ce n'est pas le cas, le programme enlevera 1à 10 jusqu'à que n soit premier(7).
et pour " n%i!=0", n sera = à 7. alors au lieu de vérifier si 10 est divisible par 7 et d'enlever 1 à 7 jusqu'à que ce soit le cas(5), il va voir si 7 est divisible par 7.
Est ce quèil existe une instruction pour reprendre la valeur initiale de n(10) au lieu d'utiliser la nouvelle valeur de n(7).
merci
def est_premier(x): i= 2 while i < x and x % i != 0 : i = i + 1 if i == x : return True else: return False
ensuite j'ai fait ma deuxième fonction:
def plus_grand_diviseur_premier(n): for i in range(1,n+1): while est_premier(n)==False and n%i!=0: n=n-1 return n
apres, le problème, se trouve au niveau du while. quand j'ai mis while n%i !=0, la variable n prend la valeur du nouveau alors qu'il devrait prendre la valeur du n initial.
par exemple, si je mets
def plus_grand_diviseur_premier(10),
ca va verifier d'abord si 10 est premier. et puisque ce n'est pas le cas, le programme enlevera 1à 10 jusqu'à que n soit premier(7).
et pour " n%i!=0", n sera = à 7. alors au lieu de vérifier si 10 est divisible par 7 et d'enlever 1 à 7 jusqu'à que ce soit le cas(5), il va voir si 7 est divisible par 7.
Est ce quèil existe une instruction pour reprendre la valeur initiale de n(10) au lieu d'utiliser la nouvelle valeur de n(7).
merci
A voir également:
- Plus grand diviseur premier
- Trier du plus petit au plus grand excel - Guide
- Photo insta en grand - Guide
- Alexia organise un appel vidéo avec ses grand-parents qui ne veulent pas installer de logiciel ou d’application, ni créer un compte. - Forum Windows
- Signe plus grand que clavier - Forum Shell
- Touche "plus petit", "plus grand" ✓ - Forum Windows Vista
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
ne suffit-il pas d'ajouter une variable, par exemple
ne suffit-il pas d'ajouter une variable, par exemple
ninitial?
et pour
j'ai obtenu 10 alors que 10 n'est pas premier
si tu veux comprendre ce que fait le code que tu as écrit, ajoute des print().