Programme nombre divisible par tous les chiffres de 1 à 20
RésoluPrimalTea -
Bonjour,
J'ai un problème concernant un programme qui ne fonctionne pas car il boucle à l'infini pour une raison qui m'est inconnue.
Le programme est le suivant :
nb = 1
while True:
divisible = True
for i in range(1, 21):
if nb % i != 0:
divisible = False
break
if divisible:
break
else:
nb += 1
print(nb)
Avez-vous une idée de "pourquoi ce programme ne fonctionne pas alors qu'il est censé me retourner le plus petit nombre divisible par tous les nombres de 1 à 20" ?
Windows / Firefox 109.0
2 réponses
-
Bonjour,
Tu devrais être moins ambitieux au départ et commencer par des valeurs plus petites (1,8), tu verras que cela fonctionne, jusqu'à 20 le temps d’exécution doit être très long, tu peux rajouter des print intermédiaires pour suivre le déroulé du programme.
Tu peux réduire le nombre de cycles en utilisant range(20, 1, -1):
PS : Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect < > permet d'appliquer au code, suivant une liste de valeurs, le format correspondant à sa nature (html, Php, C, Python, Shell, ...).
-
Merci beaucoup pour votre retour.
En effet j'ai essayé avec de plus petites valeurs et ça fonctionne. Et pour (1,21) ça à également fonctionné, j'ai juste dû attendre une minute environ.
Encore merci et bonne journée.