Le modulo

Fermé
SamB - 27 janv. 2023 à 23:17
 PierrotLeFou - 28 janv. 2023 à 18:45

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 38301 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 22 novembre 2024 4 704
27 janv. 2023 à 23:56

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

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

0

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

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

Je dois le faire avec une boucle while.

-2
jordane45 Messages postés 38301 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 22 novembre 2024 4 704
28 janv. 2023 à 09:32

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