Exercice 20
Ecrire une fonction Python analyse_parite(n) qui retourne un tuple contenant le nombre de chiffres pairs et le nombre de chiffres impairs d'un entier n. Exemple: Pour n = 5481, la fonction retourne (2, 2). Fournir deux méthodes distinctes : l'une en convertissant le nombre en chaîne de caractères, et l'autre sans aucune conversion en chaîne.
Solution
1ère méthode en convertissant le nombre en chaine de caractère:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
def analyse_parite(n): # Conversion du nombre en chaîne pour parcourir les chiffres facilement chaine = str(n) nb_pairs = 0 # Compteur de chiffres pairs nb_impairs = 0 # Compteur de chiffres impairs # Parcours de chaque caractère de la chaîne for ch in chaine: chiffre = int(ch) # Conversion du caractère en entier # Test de parité du chiffre if chiffre % 2 == 0: # Si le chiffre est divisible par 2 → pair nb_pairs += 1 else: nb_impairs += 1 # Sinon → impair # Retourne un tuple contenant : (nombre de chiffres pairs, nombre de chiffres impairs) return (nb_pairs, nb_impairs) # Exemple d'utilisation print(analyse_parite(5481)) # Résultat attendu : (2, 2) |
2ème méthode sans convertr le nombre en chaine de caractère:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
def analyse_parite(n): nb_pairs = 0 # Compteur de chiffres pairs nb_impairs = 0 # Compteur de chiffres impairs # Tant qu'il reste des chiffres à examiner while n > 0: chiffre = n % 10 # On récupère le dernier chiffre du nombre # Test de parité du chiffre if chiffre % 2 == 0: # Si le chiffre est divisible par 2 → pair nb_pairs += 1 else: # Sinon → impair nb_impairs += 1 n = n // 10 # On retire le dernier chiffre (division entière) return (nb_pairs, nb_impairs) # Exemple print(analyse_parite(5481)) # Résultat attendu : (2, 2) |
Younes Derfoufi
CRMEF OUJDA



