La boucle WHILE

koene2 Messages postés 1 Statut Membre -  
yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   -
je suis débutant en programmation et en python. je dispose du petit exercice suivant:
soient a et b deux bornes entières. je désire écrire un programme qui additionne tous les multiples de 3 et 5 qui se trouvent entre cette borne.
par exemple si a=0 et b=40, j'aimerai que le programme me retourne 45 (en sommant 0+15+30) comme résultat.
la contrainte c'est que je désire que ce soit avec la boucle WHILE et non avec la boucle FOR...IN...
merci!

2 réponses

ubumeun Messages postés 4 Statut Membre
 
Bonjour, je pense que cela ne valait pas un post sur un forum mais bon..
Il faut que tu additionnes les multiples de 3 ET 5 (donc les multiples de 15), ou les multiples de 3 OU 5 ?

un exemple avec multiples de 3 et 5 :

S=0
r=a #le "point de départ" est a
while r<=b: #je regarde si je ne vais pas trop loin..
if r%15==0: #je regarde si r est un multiple de 3 et de 5 (donc de 15)
S=S+r #si oui : je l'additionne à ma somme S
r=r+1 #au prochain tour de boucle, je regarderai l'entier suivant (*1)
print(S) #j'affiche S


(*1) : cette ligne est super importante car elle permet de faire terminer l'algorithme càd de ne pas faire "une boucle infini". C'est en fait le gros problème de while comparé à for : for fait un certain nombre de tour de boucle (que l'on détermine dans le "in range") alors que le while attend quelque chose pour s’arrêter... on le lui donne ici en faisant croître r et quand r est plus grand que b : bim ! ça s’arrête !
0
yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   1 585
 
si r est un multiple de 15, tu peux ajouter 15 à r, tu ne trouveras pas de multiple de 15 entre r et r+15.
0
yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 585
 
bonsoir, moi j’essaierais plutôt de déterminer quel est le plus petit multiple de 15 supérieur ou égal au premier nombre, ensuite combien il y a de multiples de 15 entre ces deux nombres, et puis calculer leur somme.
0