Programme Python - diviseur

Retrouver tous les sujets résolus.
Répondre
idem

Programme Python - diviseur

Message par idem » mar. 10 nov. 2020 16:01

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 !
SoS-Math(34)
Messages : 593
Enregistré le : ven. 17 nov. 2017 09:31

Re: Programme Python - diviseur

Message par SoS-Math(34) » mar. 10 nov. 2020 18:09

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
Invité

Re: Programme Python - diviseur

Message par Invité » jeu. 12 nov. 2020 20:31

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
sos-math(21)
Messages : 8789
Enregistré le : lun. 30 août 2010 11:15

Re: Programme Python - diviseur

Message par sos-math(21) » jeu. 12 nov. 2020 20:43

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
Invité

Re: Programme Python - diviseur

Message par Invité » jeu. 12 nov. 2020 21:00

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 !!
SoS-Math(34)
Messages : 593
Enregistré le : ven. 17 nov. 2017 09:31

Re: Programme Python - diviseur

Message par SoS-Math(34) » jeu. 12 nov. 2020 21:15

Bonsoir

Les deux programmes sont relativement comparables et tout aussi efficaces.

Bonne continuation
Sosmaths
Répondre