pablonsi Posté(e) le 6 novembre 2021 Signaler Share Posté(e) le 6 novembre 2021 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
E-Bahut julesx Posté(e) le 6 novembre 2021 E-Bahut Signaler Share Posté(e) le 6 novembre 2021 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... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
E-Bahut Denis CAMUS Posté(e) le 6 novembre 2021 E-Bahut Signaler Share Posté(e) le 6 novembre 2021 Bonsoir, Tu peux t'inspirer d'un énoncé similaire : https://www.lucaswillems.com/fr/articles/26/project-euler-1-solution-python Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
pablonsi Posté(e) le 6 novembre 2021 Auteur Signaler Share Posté(e) le 6 novembre 2021 Oui ça je sais mais le passage au codage ou je bloque Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
E-Bahut Denis CAMUS Posté(e) le 6 novembre 2021 E-Bahut Signaler Share Posté(e) le 6 novembre 2021 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) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
pablonsi Posté(e) le 7 novembre 2021 Auteur Signaler Share Posté(e) le 7 novembre 2021 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
E-Bahut Denis CAMUS Posté(e) le 7 novembre 2021 E-Bahut Signaler Share Posté(e) le 7 novembre 2021 OK, tu trouves combien pour la somme ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.