Le modulo

SamB -  
 PierrotLeFou -

Bonjour,

Je dois écrire un programme qui me permet d'afficher tout les diviseurs d'un nombre tapé et je dois utiliser modulo pour ça.

Le problème, c'est que j'ai oublié comment utiliser modulo et je n'arrive pas à comprendre les explications des autres sites.


Windows / Firefox 109.0

A voir également:

4 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

Bonjour

Le modulo renvoie le reste d'une division.

Autrement dit, lorsqu'il retourne zéro c'est que la division est parfaite il n'a donc aucun reste.

Par exemple, 10 modulo 2 retourne 0

Alors que 10 modulo 4 retournera 2..

Toi, il faut que tu trouves les valeurs pour lesquelles MODULO est égal à zéro.

Regarde ce que fait cet exemple

for number in range(1, 10):
    if(number % 2 == 0):
        print(number)

0
PierrotLeFou
 

J'ai vu le message de SamB avant de répondre. Il semble que donner la réponse ne soit pas suffisant ...

0
PierrotLeFou
 

Essaies ceci:
nombre = ... le nombre désiré ...
diviseur = 1
while diviseur <= nombre:
    if nombre % diviseur == 0:
        print(diviseur)
    diviseur += 1
C'est évidemment la façon la plus simple, mais la plus lente ...

On pourrait s'arrêter à la racine carré, car si diviseur est un diviseur de nombre, alors nombre // diviseur l'est aussi.

Par exemple, 4 est un diviseur de 60, donc 60 // 4 (15) l'est aussi.

Attention aux carrés parfaits comme 36: 36 // 6 = 6

J'utilise la division entière // au lieu de / même si Python est assez permissif pour tester si un nombre est divisible par un autre.

-1
SamB
 

J'ai aussi oublié de mentionner un détail.

Je dois le faire avec une boucle while.

-2
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

Oui.. et ??

Je t'ai donné un exemple pour que tu essayes de comprendre comment fonctionne le modulo.

Je ne t'ai pas donné la solution à ton exercice ce n'est pas le but de ce forum...

1