Exercices corrigés Python (Série 4)

11 Feb 2017 11 Feb 2017 141065 vues ESSADDOUKI Mostafa 15 min de lecture

Exercices : Propriétés des nombres et chaînes de caractères

Cette série d'exercices explore diverses propriétés arithmétiques des nombres (nombres distincts, auto-nombres, nombres circulaires) ainsi que des manipulations de chaînes de caractères (poids d'une chaîne, code numérique).

Thèmes abordés Ces exercices mobilisent des techniques de manipulation de chiffres, de test de primalité, de rotation de chaînes, et de calculs itératifs sur les nombres.
 Exercice 1

Nombres distincts

 Niveau : Débutant

Un entier est dit distinct s'il est composé de chiffres distincts (différents).

Écrire un programme Python qui permet de saisir un entier n (n > 0), puis de vérifier et d'afficher si cet entier est distinct ou non.

  Exemples

  • N = 1273 est distinct (chiffres 1,2,7,3 tous différents)
  • N = 1565 est non distinct (le chiffre 5 se répète)
Exemples
Entrée
1273
Sortie
1273 est distinct
Entrée
1565
Sortie
1565 est non distinct
 Exercice 2

Somme et produit des chiffres

 Niveau : Débutant

Écrire un programme Python qui permet d'afficher tous les entiers positifs de trois chiffres de la forme cdu tel que, pour chaque entier, la somme de ses chiffres (c+d+u) est un diviseur du produit de ses chiffres (c*d*u).

  Exemple

L'entier 514 vérifie cette propriété : (5+1+4) = 10 est un diviseur de (5*1*4) = 20.

 Exercice 3

Auto-nombres

 Niveau : Intermédiaire

En arithmétique, un auto-nombre est un entier naturel N qui ne peut pas s'écrire sous la forme d'un nombre M ajouté à la somme des chiffres de M.

  Exemples

  • N = 21 n'est pas un auto-nombre, car 21 = 15 + 1 + 5 (M = 15, somme de ses chiffres = 6).
  • N = 20 est un auto-nombre car il n'existe aucun M tel que M + somme_chiffres(M) = 20.

Écrire un programme permettant de vérifier si un entier naturel N strictement positif est un auto-nombre.

Exemples
Entrée
21
Sortie
False
Entrée
20
Sortie
True
 Exercice 4

Nombres à puissances variables

 Niveau : Intermédiaire

Écrire un programme Python qui permet de déterminer si un entier N de quatre chiffres vérifie la relation suivante : N = somme des puissance Kᵉ de ses chiffres, avec 1 ≤ K ≤ 5.

  Exemple avec N = 1634

  • 1¹ + 6¹ + 3¹ + 4¹ = 14 ≠ 1634
  • 1² + 6² + 3² + 4² = 62 ≠ 1634
  • 1³ + 6³ + 3³ + 4³ = 308 ≠ 1634
  • 1⁴ + 6⁴ + 3⁴ + 4⁴ = 1634 ✓ → N = 1634 vérifie la propriété avec K = 4

Pour N = 2114, on teste jusqu'à K = 5 sans succès → le nombre ne vérifie pas la propriété.

 Exercice 5

Nombres premiers circulaires

 Niveau : Avancé

Un nombre premier N est dit circulaire s'il vérifie la propriété suivante : chacune des rotations de ses chiffres d'un élément vers la droite forme à son tour un nombre premier.

  Exemples

  • N = 719 est premier circulaire car 719, 971 et 197 sont tous premiers. (971 est obtenu par rotation de 719, 197 par rotation de 971)
  • N = 23 n'est pas premier circulaire car 32 n'est pas premier.
  • N = 6102 n'est pas premier circulaire car il n'est pas premier.

Écrire un programme Python permettant de chercher tous les nombres premiers circulaires se trouvant dans un intervalle [p, q] fourni par l'utilisateur.

Exemple
Entrée
p = 100, q = 300
Sortie
113, 131, 197, 199
 Exercice 6

Poids d'une chaîne

 Niveau : Intermédiaire

On définit le poids d'une chaîne comme étant la somme des produits de la position de chaque voyelle dans cette chaîne par son rang dans l'alphabet français.

Si la chaîne ne contient pas de voyelles, son poids est égal à zéro.

N.B : Les voyelles sont A, E, I, O, U, Y et leurs rangs respectifs sont : 1, 5, 9, 15, 21, 25.

  Exemples

  • La chaîne 'BONNE' contient 2 voyelles 'O' et 'E' : position de 'O' = 2, rang de 'O' = 15 → 2×15 = 30 position de 'E' = 5, rang de 'E' = 5 → 5×5 = 25 total = 55
  • La chaîne 'CHANCE' contient 2 voyelles 'A' et 'E' : position de 'A' = 3, rang de 'A' = 1 → 3×1 = 3 position de 'E' = 6, rang de 'E' = 5 → 6×5 = 30 total = 33

Écrire un programme Python qui permet de lire une chaîne non vide, composée seulement de lettres alphabétiques majuscules, puis calcule et affiche le poids de cette chaîne.

 Exercice 7

Code d'un nombre

 Niveau : Intermédiaire

On se propose d'écrire un programme Python permettant de déterminer et d'afficher un code à partir d'un entier N strictement positif et supérieur à 100, selon le principe suivant :

  1. Calculer la somme S des chiffres qui composent le nombre N.
  2. Recommencer le calcul de la somme des chiffres de la somme obtenue S tant que celle-ci n'est pas comprise entre 1 et 9.

Le code sera le nombre formé par N auquel on place à sa gauche la dernière somme obtenue.

  Exemple

Pour N = 9867, le programme affichera : le code est 39867

  • 1ère somme S = 9+8+6+7 = 30
  • 2ème somme S = 3+0 = 3
  • 3 est compris entre 1 et 9 → on arrête
  • Code = 3 + "9867" = 39867
Exemple
Entrée
9867
Sortie
39867

Récapitulatif

ExerciceFonctionnalitéMéthode clé
1 - Nombres distinctsVérifier si les chiffres sont uniquesset(str(n)) ou count()
2 - Somme et produitDiviseur de la somme par le produitParcours des nombres à 3 chiffres
3 - Auto-nombresNombre non générable par M + somme_chiffres(M)Recherche de M avec optimisation
4 - Puissances variablesNombres narcissiques à 4 chiffresTest des puissances 1 à 5
5 - Premiers circulairesRotations du nombre toutes premièresTest de primalité + rotations
6 - Poids d'une chaînePosition × rang des voyellesDictionnaire des rangs
7 - Code d'un nombreRacine numérique + nombre originalSomme itérée des chiffres
Points clés à retenir
  • Les ensembles sont très utiles pour vérifier l'unicité des éléments.
  • La racine numérique (somme des chiffres itérée) a une formule fermée simple.
  • Les rotations de chaînes permettent de générer des permutations circulaires.
  • Les dictionnaires sont parfaits pour associer des valeurs à des caractères.
  • L'optimisation des boucles est cruciale pour les tests de primalité sur de grands intervalles.
Sortie
// La sortie apparaîtra ici…
Prêt · Ctrl+Entrée pour exécuter

Discussion (0)

Soyez le premier à laisser un commentaire !

Laisser un commentaire

Votre commentaire sera visible après modération.