Exercice d'algorithmie pour allumer des lampes
Bonjour,
Je suis lycéen (Terminale S option ISN) et j'ai un devoir sur python à faire pendant les vacances, ce devoir comporte 2 exercices, j'ai réussi à faire le 1er mais je bloque sur le deuxième.
Intitulé de l'exercice :
276 lampes sont numérotées de 1 à 276. Pour passer le temps, 25 enfants appuient sur les interrupteurs à tour de rôle. Le premier enfant presse chaque interrupteur. Le second presse les boutons 2,4,6, etc, (il presse les boutons ayant un numéro multiple de 2). Le troisième appuie sur les boutons 3, 6, 9, etc, (multiples de 3). Le quatrième presse tous les boutons ayant un numéro multiples de 4, et ainsi de suite jusqu'au 25ème enfant. Avant le passage du premier enfant, toutes les ampoules sont éteintes.
Questions :
1. Combien d'ampoules seront allumées après le passage des 25 enfants ?
2. Proposer une évolution du programme permettant à l'utilisateur de faire varier le nombres d'enfants.
3. Proposer une évolution du programme permettant à l'utilisateur de faire varier le nombre d'ampoules.
Cela ne fait que 2 mois que nous voyons les bases de python, et j'avoue que pour cet exercice je bloque totalement, je ne sais pas par où commencer.
Cependant, voici ce qui je pense est un début d'idée (mais je sais pas l'exprimer en langage python) :
0 serait la valeur d'une ampoule éteinte et 1 une ampoule allumée.
Il faudrait une liste de 276 ampoules éteintes (donc 0)
Chaque enfant donnerait à la valeur 0 ou 1 son inverse, c'est à dire 1 ou 0. (Une histoire de boléen ça non?)
Par contre je sais pas vraiment (même pas du tout) comment programmer les enfants qui interviennent dans la liste :(:(
Enfin à la fin du programme il faudrait un compteur du type :
Code:
1 2 3 4 5 6 7
| a=0
for i in (liste de 0 et de 1):
if i==1 #donc ampoule allumée
a = a+1
print a #qui normalement nous donnerais le nombre d'ampoules allumées |
Etant donné que je bloque dès la question, je plante carrément en lisant les 2 autres, mais je pense que après avoir réussi la question 1 ce sera plus simple d'identifier la fonction de chaque ligne du code.
Voilà voilà c'est tout, j'espère vraiment que vous m'aiderez (avec indulgence svp je suis débutant :oops:)