Les mathématiques et le codage vont de pair — les nombres sont partout dans la programmation. Que vous vérifiiez si un nombre est premier, que vous génériez des séquences de Fibonacci ou que vous détectiez un palindrome, ces petits défis aiguisent à la fois vos compétences en mathématiques et votre logique de codage. 

Dans cet article, nous allons explorer 20 exercices de programmation adaptés aux débutants basés sur les nombres. Pour chacun d'eux, vous obtiendrez une brève explication du concept mathématique, quelques exemples d'entrées et de sorties, et une solution Python prête à l'emploi. C'est une manière amusante de pratiquer le codage tout en apprenant comment des idées mathématiques comme les carrés parfaits, les cubes et les nombres triangulaires peuvent prendre vie dans le code.

1. Somme des N premiers nombres naturels

Ce que l'exercice demande :

Écrivez un programme pour trouver la somme des n premiers nombres naturels. Cela vous aide à pratiquer les boucles ou les formules mathématiques.

Qu'est-ce qu'un nombre naturel ?

Les nombres naturels sont les nombres de comptage commençant à 1 : 1, 2, 3, 4, …

Exemple d'entrée

5

Exemple de sortie

15

Solution Python

# Lire n et calculer la somme des n premiers nombres naturels en utilisant la formule fermée
n = int(input("Entrez n : "))
# Utiliser l'arithmétique entière (//) pour éviter les flottants
total = n * (n + 1) // 2
print(total)

2. Vérificateur de pair ou impair

Ce que l'exercice demande :

Prenez une entrée entière et imprimez si elle est paire ou impaire.

Qu'est-ce que pair/impaire ?

Les nombres pairs sont divisibles par 2 (par exemple, 2, 4, 6). Les nombres impairs laissent un reste de 1 lorsqu'ils sont divisés par 2 (par exemple, 1, 3, 5).

Exemple d'entrée

7

Exemple de sortie

7 est impair

Solution Python

# Déterminer si l'entier d'entrée est pair ou impair en utilisant le modulo
n = int(input("Entrez un nombre : "))
if n % 2 == 0:
    print(f"{n} est pair")
else:
    print(f"{n} est impair")

3. Vérificateur de nombre premier

Ce que l'exercice demande :

Écrivez un programme pour vérifier si un nombre donné est premier.

Qu'est-ce qu'un nombre premier ?

Un nombre premier est supérieur à 1 et divisible uniquement par 1 et lui-même (par exemple, 2, 3, 5, 7).

Exemple d'entrée

13

Exemple de sortie

13 est premier

Solution Python

# Vérifier la primalité en tentant une division jusqu'à sqrt(n)
n = int(input("Entrez un nombre : "))
if n < 2:
    print(f"{n} n'est pas premier")
else:
    for d in range(2, int(n**0.5) + 1):
        if n % d == 0:
            print(f"{n} n'est pas premier")
            break
    else:
        print(f"{n} est premier")

4. Somme des chiffres

Ce que l'exercice demande :

Trouvez la somme de tous les chiffres d'un nombre.

Pourquoi les sommes de chiffres sont-elles importantes ?

Les sommes de chiffres apparaissent dans les règles de divisibilité et divers casse-têtes numériques (par exemple, divisible par 3 si la somme des chiffres est divisible par 3).

Exemple d'entrée

1234

Exemple de sortie

10

Solution Python

# Somme des chiffres en itérant sur les caractères et en les convertissant en entiers
s = input("Entrez un nombre : ").strip()
digit_sum = sum(int(ch) for ch in s if ch.isdigit())
print(digit_sum)

5. Vérificateur de nombre palindromique

Ce que l'exercice demande :

Vérifiez si un nombre se lit de la même manière à l'envers qu'à l'endroit.

Qu'est-ce qu'un nombre palindromique ?

Un nombre comme 121, 1331 ou 12321 qui reste le même lorsqu'il est inversé.

Exemple d'entrée

12321

Exemple de sortie

12321 est un palindrome

Solution Python

# Comparer la chaîne avec son inverse pour tester le palindrome
s = input("Entrez un nombre : ").strip()
print(f"{s} est un palindrome" if s == s[::-1] else f"{s} n'est pas un palindrome")

6. Trouver tous les facteurs d'un nombre

Ce que l'exercice demande :

Listez tous les nombres qui divisent n de manière entière.

Qu'est-ce que des facteurs ?

Les facteurs sont des entiers que vous pouvez multiplier pour obtenir n. Pour 12, les facteurs sont 1, 2, 3, 4, 6, 12.

Exemple d'entrée

12

Exemple de sortie

1 2 3 4 6 12

Solution Python

# Générer tous les diviseurs en testant de 1 à n
n = int(input("Entrez un nombre : "))
factors = [d for d in range(1, n+1) if n % d == 0]
print(" ".join(map(str, factors)))

7. Vérificateur de nombre parfait

Ce que l'exercice demande :

Vérifiez si n est égal à la somme de ses diviseurs propres (à l'exclusion de lui-même).

Qu'est-ce qu'un nombre parfait ?

Les nombres comme 6 (=1+2+3) et 28 (=1+2+4+7+14) sont des nombres parfaits.

Exemple d'entrée

28

Exemple de sortie

28 est un nombre parfait

Solution Python

# Somme des diviseurs propres (exclure n) et comparer à n
n = int(input("Entrez un nombre : "))
proper = [d for d in range(1, n) if n % d == 0]
print(f"{n} est un nombre parfait" if sum(proper) == n else f"{n} n'est pas un nombre parfait")

8. Vérificateur de nombre Armstrong (Narcissique)

Ce que l'exercice demande :

Vérifiez si n est égal à la somme de ses chiffres élevés à la puissance du nombre de chiffres.

Qu'est-ce qu'un nombre Armstrong ?

Exemple : 153 = 1³ + 5³ + 3³ ; 9474 = 9⁴ + 4⁴ + 7⁴ + 4⁴.

Exemple d'entrée

153

Exemple de sortie

153 est un nombre Armstrong

Solution Python

# Élever chaque chiffre à la puissance du nombre total de chiffres et faire la somme
s = input("Entrez un nombre : ").strip()
p = len(s)
arm = sum(int(ch)**p for ch in s)
print(f"{s} est un nombre Armstrong" if arm == int(s) else f"{s} n'est pas un nombre Armstrong")

9. Vérificateur de carré parfait

Ce que l'exercice demande :

Vérifiez si un nombre est un carré parfait.

Qu'est-ce qu'un carré parfait ?

Un nombre qui peut être écrit comme k² (par exemple, 4, 9, 16, 25).

Exemple d'entrée

49

Exemple de sortie

49 est un carré parfait

Solution Python

# Utiliser la racine carrée entière pour éviter les problèmes de flottants
import math
n = int(input("Entrez un nombre : "))
print(f"{n} est un carré parfait" if math.isqrt(n)**2 == n else f"{n} n'est pas un carré parfait")

10. Vérificateur de cube parfait

Ce que l'exercice demande :

Vérifiez si un nombre est un cube parfait.

Qu'est-ce qu'un cube parfait ?

Un nombre qui peut être exprimé comme k³ (par exemple, 8, 27, 64).

Exemple d'entrée

27

Exemple de sortie

27 est un cube parfait

Solution Python

# Approximer la racine cubique en arrondissant et vérifier en cubant à nouveau
n = int(input("Entrez un nombre : "))
croot = round(n ** (1/3))
print(f"{n} est un cube parfait" if croot**3 == n else f"{n} n'est pas un cube parfait")

11. Générateur de séquence de Fibonacci

Ce que l'exercice demande :

Générez les n premiers nombres de Fibonacci.

Qu'est-ce qu'un nombre de Fibonacci ?

Séquence commençant par 0, 1 où chaque nouveau terme est la somme des deux précédents : 0, 1, 1, 2, 3, 5, 8, …

Exemple d'entrée

7

Exemple de sortie

0 1 1 2 3 5 8

Solution Python

# Construire itérativement la séquence de Fibonacci en utilisant deux suiveurs
n = int(input("Entrez n : "))
a, b = 0, 1
seq = []
for _ in range(n):
    seq.append(a)
    a, b = b, a + b
print(" ".join(map(str, seq)))

12. Vérifiez si un nombre est dans la séquence de Fibonacci

Ce que l'exercice demande :

Vérifiez si un nombre donné appartient à la séquence de Fibonacci.

Fait mathématique :

n est Fibonacci si et seulement si (5n² + 4) ou (5n² − 4) est un carré parfait.

Exemple d'entrée

21

Exemple de sortie

21 est un nombre de Fibonacci

Solution Python

# Utiliser le test de carré parfait 5n^2±4 pour vérifier l'appartenance à Fibonacci
import math

def is_square(x: int) -> bool:
    return math.isqrt(x)**2 == x

n = int(input("Entrez un nombre : "))
if is_square(5*n*n + 4) or is_square(5*n*n - 4):
    print(f"{n} est un nombre de Fibonacci")
else:
    print(f"{n} n'est pas un nombre de Fibonacci")

13. Vérificateur de nombre triangulaire

Ce que l'exercice demande :

Vérifiez si n est triangulaire : n = k(k+1)/2 pour un certain entier k.

Qu'est-ce qu'un nombre triangulaire ?

Ils forment des triangles de points : 1, 3, 6, 10, 15, …

Exemple d'entrée

15

Exemple de sortie

15 est un nombre triangulaire

Solution Python

# Résoudre k(k+1)/2 = n en vérifiant k = floor((sqrt(8n+1)-1)/2)
import math
n = int(input("Entrez un nombre : "))
k = int((math.isqrt(8*n + 1) - 1) // 2)
print(f"{n} est un nombre triangulaire" if k * (k + 1) // 2 == n else f"{n} n'est pas un nombre triangulaire")

14. Nombre rationnel (Décimal → Fraction)

Ce que l'exercice demande :

Convertissez un décimal en une fraction simplifiée p/q.

Qu'est-ce qu'un nombre rationnel ?

Un nombre exprimable comme un rapport d'entiers (par exemple, 0.75 = 3/4).

Exemple d'entrée

0.75

Exemple de sortie

3/4

Solution Python

# Utiliser Fraction pour convertir le décimal en forme p/q et simplifier
from fractions import Fraction
x = float(input("Entrez un décimal : "))
print(Fraction(x).limit_denominator())

15. Vérificateur de nombre triangulaire

Ce que l'exercice demande :

Vérifiez si un nombre est triangulaire, ce qui signifie qu'il peut former un triangle équilatéral.

Qu'est-ce qu'un nombre triangulaire ?

Les nombres triangulaires sont des sommes des n premiers nombres naturels : 1, 3, 6, 10, 15…

Exemple d'entrée

10

Exemple de sortie

10 est un nombre triangulaire

Solution Python

import math

n = int(input("Entrez un nombre : "))
# Formule : si 8n+1 est un carré parfait, alors n est triangulaire
check = 8 * n + 1
if int(math.isqrt(check))**2 == check:
    print(f"{n} est un nombre triangulaire")
else:
    print(f"{n} n'est pas un nombre triangulaire")

16. Générateur de séquence de Fibonacci

Ce que l'exercice demande :

Générez la séquence de Fibonacci jusqu'à n termes.

Qu'est-ce que la séquence de Fibonacci ?

C'est une séquence où chaque nombre est la somme des deux précédents : 0, 1, 1, 2, 3, 5, 8…

Exemple d'entrée

7

Exemple de sortie

0 1 1 2 3 5 8

Solution Python

n = int(input("Entrez le nombre de termes : "))
a, b = 0, 1
for _ in range(n):
    print(a, end=" ")
    a, b = b, a + b

17. Somme des chiffres

Ce que l'exercice demande :

Calculez la somme de tous les chiffres d'un nombre donné.

Que signifie cela ?

Exemple : les chiffres de 1234 sont 1+2+3+4 = 10.

Exemple d'entrée

1234

Exemple de sortie

10

Solution Python

n = input("Entrez un nombre : ")
# Convertir chaque caractère en int et faire la somme
s = sum(int(d) for d in n)
print(s)

18. Inverser un nombre

Ce que l'exercice demande :

Inversez les chiffres du nombre donné.

Que signifie cela ?

Exemple : 12345 devient 54321.

Exemple d'entrée

12345

Exemple de sortie

54321

Solution Python

n = input("Entrez un nombre : ")
# Utiliser le slicing pour inverser
print(n[::-1])

19. Plus grand commun diviseur (PGCD)

Ce que l'exercice demande :

Trouvez le plus grand nombre qui divise deux entiers sans reste.

Qu'est-ce que le PGCD ?

Le plus grand diviseur commun aux deux nombres. Exemple : pgcd(12, 18) = 6.

Exemple d'entrée

12 18

Exemple de sortie

6

Solution Python

import math

a, b = map(int, input("Entrez deux nombres : ").split())
# Utiliser math.gcd pour l'efficacité
print(math.gcd(a, b))

20. Plus petit commun multiple (PPCM)

Ce que l'exercice demande :

Trouvez le plus petit nombre qui est divisible par les deux entiers donnés.

Qu'est-ce que le PPCM ?

Le plus petit multiple commun de deux nombres. Exemple : ppcm(4, 6) = 12.

Exemple d'entrée

4 6

Exemple de sortie

12

Solution Python

import math

a, b = map(int, input("Entrez deux nombres : ").split())
# Formule : ppcm(a, b) = abs(a*b) // pgcd(a, b)
print(abs(a*b) // math.gcd(a, b))