Aller au contenu

DL0001⚓︎

Exercice 1

Écrire un programme qui demande un nombre n puis qui affiche tous les carrés des nombres inférieurs ou égaux à ce nombre n.

Par exemple, si on donne 5, le programme doit afficher:

0
1
4
9
16
25

Ici on veut faire une boucle sur des entiers: les entiers compris entre 0 et n dont on veut afficher la valeur des carrés. Il faut donc écrire une boucle for sur un range. Mais attention, pour aller jusqu'à l'entier n compris, il faudra s'arrêter à l'entier suivant, c'est-à-dire n+1.

1
2
3
n = int(input("Donnez moi un nombre: "))
for k in range(n+1):
    print(k**2) # ou print(k*k)

Exercice 2

Écrire un programme qui produit l'affichage suivant:

1 est impair
2 est pair
3 est impair
4 est pair
5 est impair
6 est pair
7 est impair
8 est pair
9 est impair
10 est pair
11 est impair
12 est pair
13 est impair

À nouveau on fait une boucle for sur un range car ce qui varie à chaque ligne est l'entier, en commençant à 1 et non à 0.

Pour tester la parité, on calcule le reste de l'entier dans la division euclidienne par 2 (on dit qu'on calcule «n modulo 2».

1
2
3
4
5
for n in range(1, 14):
    if n%2 == 0:
        print(n, "est pair")
    else:
        print(n, "est impair")

Exercice 3

Pydéfi : https://pydefis.callicode.fr/defis/SpymasterBomb/txt

  • Penser à utiliser une variable accumulateur.
  • Utiliser la division euclidienne pour tester la divisibilité par un nombre.

La stratégie est la suivante:

  • parcourir tous les nombres strictement inférieurs au seuil donné (20 dans l'exemple, 1435 dans le problème) avec une boucle for ;
  • pour chaque nombre on teste sa divisibilité (modulo) par 3 ou par 5
  • si le résultat de ce test est True alors on ajoute le nombre à la somme précédente (variable accumulatrice, initialisée à 0 en début de programme.

Ce qui donne:

1
2
3
4
5
6
somme = 0
n = 20
for k in range(n):
    if k%3 == 0 or k%5 == 0:
        somme = somme + k # ou somme += k
print(somme) 

Exercice 4 Bonus

Écrire un programme qui demande un nombre entier n et qui calcule le produit de ses chiffres.

Indication: penser à la division euclidienne par 10...

On se sert de la division euclidienne pour récupérer le chiffre des unités, grâce au reste:

>>> 1234 % 10
4
Ainsi que du quotient pour recommencer avec les autres chiffres:
>>> 1234 // 10
123

Ce qui donne (on recommence tant qu'il y a des chiffres...):

1
2
3
4
5
6
7
8
n = int(input("Donnez moi un nombre: "))

produit = 1 
while n > 0:
    unite = n % 10
    produit *= unite # ou produit = produit * unite
    n = n // 10
print(f"Le produit des chiffres est {produit}")