Étape 1
Analysons le fonctionnement de la fonction traitement(n) pour différentes valeurs de l'entier $n \ge 1$.
Étape 2
Au départ, la variable $a$ est initialisée à $2$. La boucle for fait varier la variable $k$ de $1$ à $n$. À chaque étape, la valeur de $a$ est modifiée selon la parité de $k \pmod 3$ (le reste de la division entière de $k$ par $3$) :
Étape 3
Si $k$ n'est pas un multiple de $3$ ($k \% 3 \neq 0$), la variable $a$ augmente de $3$. Si $k$ est un multiple de $3$ ($k \% 3 == 0$), la variable $a$ augmente de $10$.
Étape 4
Dressons le tableau des valeurs prises par la variable $a$ au fil des itérations :
Étape 5
Pour $n = 1$ : $k = 1$ (non divisible par $3$), $a = 2 + 3 = 5$.
Étape 6
Pour $n = 2$ : $k = 2$ (non divisible par $3$), $a = 5 + 3 = 8$.
Étape 7
Pour $n = 3$ : $k = 3$ (divisible par $3$), $a = 8 + 10 = 18$.
Étape 8
On constate ainsi qu'après chaque cycle de $3$ itérations, l'augmentation totale de la variable $a$ est égale à $3 + 3 + 10 = 16$.
Étape 9
Poursuivons le déroulement pour les itérations suivantes :
Étape 10
Pour $n = 4$ : $a = 18 + 3 = 21$.
Étape 11
Pour $n = 5$ : $a = 21 + 3 = 24$.
Étape 12
Pour $n = 6$ : $a = 24 + 10 = 34$.
Étape 13
Pour $n = 7$ : $a = 34 + 3 = 37$.
Étape 14
Pour $n = 8$ : $a = 37 + 3 = 40$.
Étape 15
Pour $n = 9$ : $a = 40 + 10 = 50$.
Étape 16
Pour $n = 8$, la valeur renvoyée est $40$, ce qui est strictement inférieur à $50$. Pour $n = 9$, la valeur renvoyée est $50$, ce qui est supérieur ou égal à $50$.
Étape 17
La plus petite valeur de l'entier $n \ge 1$ recherchée est donc $9$.
Méthode clé
Effectuer un traçage pas à pas des variables ou identifier la période de variation sur un bloc d'itérations complet.
Piège à éviter
Confondre l'opérateur modulo `%` (reste de la division entière) avec la division classique, ou oublier que l'instruction `range(1, n + 1)` fait varier $k$ de $1$ jusqu'à $n$.