Programme Python - diviseur
Programme Python - diviseur
Rebonjour
C'est le deuxième exo que j'ai : "Ecrire un programme qui recherche le plus petit diviseur autre que 1 de n donné en paramètre."
J'utiliserais bien une boucle while, mais comment ?
Est-ce une bonne idée ?
Je n'ai pas envie que vous me donniez la réponse toute faite... Mais comment intuiter le programme ? A la main déjà ?
Merci bien !
C'est le deuxième exo que j'ai : "Ecrire un programme qui recherche le plus petit diviseur autre que 1 de n donné en paramètre."
J'utiliserais bien une boucle while, mais comment ?
Est-ce une bonne idée ?
Je n'ai pas envie que vous me donniez la réponse toute faite... Mais comment intuiter le programme ? A la main déjà ?
Merci bien !
-
- Messages : 599
- Enregistré le : ven. 17 nov. 2017 09:31
Re: Programme Python - diviseur
Bonjour
Une aide :
Dire que d est un diviseur de n revient à dire que le reste de n dans la division euclidienne par d est 0, c'est à dire n%d=0 en langage Python.
Tu peux effectivement utiliser une boucle "while".
Bonne recherche
sosmaths
Une aide :
Dire que d est un diviseur de n revient à dire que le reste de n dans la division euclidienne par d est 0, c'est à dire n%d=0 en langage Python.
Tu peux effectivement utiliser une boucle "while".
Bonne recherche
sosmaths
Re: Programme Python - diviseur
Merci. j'ai beaucoup cherché hier mais je ne vois vraiment pas...
est-ce que vous pourriez me dire comment faire svp ?
merci beaucoup bonne soirée
est-ce que vous pourriez me dire comment faire svp ?
merci beaucoup bonne soirée
-
- Messages : 10362
- Enregistré le : lun. 30 août 2010 11:15
Re: Programme Python - diviseur
Bonjour,
un diviseur d'un nombre entier naturel \(n\) non nul est compris entre 1 et \(n\).
Si tu cherches le premier diviseur supérieur à 1, tu peux chercher à parcourir la suite des nombres entiers entre 2 et n, à tester la divisibilité de \(n\) par ce nombre et à t'arrêter dès que tu tombes sur un diviseur, c'est à dire un nombre pour lequel le reste de la division euclidienne de \(n\) par ce nombre est égal à 0.
Tu peux au choix utiliser une boucle for ou une boucle while en fonction de ce que tu connais.
Avec une boucle while :
et avec une boucle for :
Bonne continuation
un diviseur d'un nombre entier naturel \(n\) non nul est compris entre 1 et \(n\).
Si tu cherches le premier diviseur supérieur à 1, tu peux chercher à parcourir la suite des nombres entiers entre 2 et n, à tester la divisibilité de \(n\) par ce nombre et à t'arrêter dès que tu tombes sur un diviseur, c'est à dire un nombre pour lequel le reste de la division euclidienne de \(n\) par ce nombre est égal à 0.
Tu peux au choix utiliser une boucle for ou une boucle while en fonction de ce que tu connais.
Avec une boucle while :
Code : Tout sélectionner
def cherche_div(n):
"""recherche le premier diviseur >1 d'un nombre"""
d = 2
while n%d != 0:
d = d + 1
return d
Code : Tout sélectionner
def cherche_div_2(n):
"""recherche le premier diviseur >1 d'un nombre"""
for d in range(2,n+1):
if n%d == 0:
return d
Re: Programme Python - diviseur
Merci beaucoup !
On a appris la boucle while cette semaine et je connais la boucle for.
Du coup, y a-t-il un programme qui est "mieux" parmi les 2 ou pas ?
Merci, grâce à vous j'ai compris !!
On a appris la boucle while cette semaine et je connais la boucle for.
Du coup, y a-t-il un programme qui est "mieux" parmi les 2 ou pas ?
Merci, grâce à vous j'ai compris !!
-
- Messages : 599
- Enregistré le : ven. 17 nov. 2017 09:31
Re: Programme Python - diviseur
Bonsoir
Les deux programmes sont relativement comparables et tout aussi efficaces.
Bonne continuation
Sosmaths
Les deux programmes sont relativement comparables et tout aussi efficaces.
Bonne continuation
Sosmaths