Page 1 sur 1

Programme Python - diviseur

Posté : mar. 10 nov. 2020 16:01
par idem
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 !

Re: Programme Python - diviseur

Posté : mar. 10 nov. 2020 18:09
par SoS-Math(34)
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

Re: Programme Python - diviseur

Posté : jeu. 12 nov. 2020 20:31
par Invité
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

Re: Programme Python - diviseur

Posté : jeu. 12 nov. 2020 20:43
par sos-math(21)
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 :

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
et avec une boucle for :

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
Bonne continuation

Re: Programme Python - diviseur

Posté : jeu. 12 nov. 2020 21:00
par Invité
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 !!

Re: Programme Python - diviseur

Posté : jeu. 12 nov. 2020 21:15
par SoS-Math(34)
Bonsoir

Les deux programmes sont relativement comparables et tout aussi efficaces.

Bonne continuation
Sosmaths