Un nombre \(n\) est divisible par \(3\) si le reste de la division euclidienne de \(n\) par \(3\) vaut \(0\).
On se propose dans cet exercice de tester de trois manières différentes si un entier \(n\) est divisible par \(3\).
On demande donc, dans chaque question, d'écrire une version de la fonction est_divisible_par_3 qui prend en paramètre un entier positif ou nul n et renvoie True si n est divisible par \(3\), False dans le cas contraire.
Le mot clé assert est utilisé en Python afin de vérifier que des propositions sont vraies.
Ainsi, l'instruction assert3+5*7==38 permet de vérifier que l'expression 3+5*7 est bien évaluée à 38.
Si c'est le cas, le programme continue de se dérouler normalement. Dans le cas contraire, le programme est interrompu et une erreur est signalée.
La vidéo ne s'affiche pas... ?
Il peut arriver que les vidéos ne s'affichent pas sur des navigateurs basés sur Chrome, ou si un ad-blocker est activé sur le navaigateur. Essayer avec un autre navigateur si vous êtes dans ce cas (FireFox, typiquement), ou désactivez l'ad-blocker.
Version native
L'opérateur % de Python renvoie le reste de la division euclidienne des deux nombres proposés.
Ainsi, 25%3 est évalué à 1 car \(25 = 8 \times 3 + \mathbf{1}\).
Contrainte
Dans cette version, on autorise l'utilisation de n%3.
Défi : du premier coup !
Pouvez-vous compléter cette fonction en ajoutant une seule ligne ?
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Entrer ou sortir du mode "deux colonnes" (Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran" (Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Dans cette version, on se propose d'utiliser la règle de divisibilité enseignée dans les petites classes :
Somme des chiffres
Un nombre \(n\) est divisible par \(3\) si et seulement si la somme de ses chiffres est divisible par \(3\).
On peut répéter cette règle à plusieurs reprises jusqu'à ce que la somme des chiffres soit strictement inférieure à \(10\). Dans ce cas, les seuls entiers divisibles par \(3\) sont \(0\), \(3\), \(6\) ou \(9\).
Dans cette version, on parcourt les chiffres d'un entier après l'avoir converti en une chaîne de caractères comme illustré ci-dessous :
Dans cette version, on se propose d'utiliser une version modifiée de la règle de divisibilité enseignée dans les petites classes.
Somme des chiffres
Un nombre \(n\) est divisible par \(3\) si et seulement si la somme de son nombre de dizaine et de son chiffre des unités est divisible par \(3\).
On répète cette règle jusqu'à ce que cette somme soit strictement inférieure à \(10\). Dans ce cas, les seuls entiers divisibles par \(3\) sont \(0\), \(3\), \(6\) ou \(9\).
Appliquée à \(5\,832\) la règle donne (\(n \equiv r \pmod 3\) est la notation mathématique pour « le reste de la division de \(n\) par \(3\) vaut \(r\) ») :
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)