Aller au contenu

NSI-Python (thonny) multiple


pablonsi

Messages recommandés

Posté(e)

Salut a tous 

J'ai une question car je n'arrive pas a faire ce programme:

faire un programme qui affiche la somme des multiples de 5 et 7 de 1 à 2021 

merci d'avance

 

  • E-Bahut
Posté(e)

Bonsoir,

Qu'est-ce qui t'arrête, les multiples de 5 sont ceux pour lesquels la division euclidienne par 5 retourne un reste nul,les multiples de 7 sont ceux pour lesquels la division euclidienne par 7 retourne un reste nul et il ne faut pas compter 2 fois les multiples de 5*7.
Partant de là, il n'y a plus qu'à explorer tous les cas pour un entier variant entre 1 et 2021.

Ou alors, je n'ai rien compris...

  • E-Bahut
Posté(e)

Tu charries un peu :

Le programme est donné pour des multiples de 3 et 5, et cela jusqu'à 1000.

Toi, tu as besoin d'aller jusqu'à 2021, avec les multiples de 5 et 7.

Tu ne vois pas ce qu'il faut modifier ?

resultat = 0
for i in range(1, 1000):
    if i%3 == 0 or i%5 == 0:
        resultat += i
print(resultat)

for i in range(1, 1000): ==> la variable i varie de 1 à 1000

if i%3 == 0 or i%5 == 0: ==> % est l'opérateur "modulo", c'est à dire qu'il donne le reste de la division du premier terme par le deuxième.

Alors si i%3 = 0, cela signifie que la division de i par 3 donne un reste nul donc que i est un multiple de 3. Pareil pour 5 (ou pour 7 chez toi).

resultat += i ==> pourrait s'écrire aussi : resultat = resultat +  i.

Ce qui veut dire que lorsque l'on tombe sur l'un de multiples cherchés, on l'ajoute à la somme déjà créée avant de le trouver.

 

Ça ne viendra pas tout seul si tu ne fais pas quelques exercices de programmation, en particulier pour comprendre les indentations lors des boucles.

_________________________________________________________

Voilà une version légèrement modifiée qui te donne la progression de la somme au fur et à mesure qu'un multiple de 3 ou 5 est découvert.

resultat = 0
for i in range(1, 32):
    if i%3 == 0 or i%5 == 0:
        resultat += i
        print(i, resultat)

 

Posté(e)

C'était simplement pour l'écriture du résultat mais je n'avais pas vu la réponse contenant le lien c'est tout bon 

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...
spam filtering
spam filtering