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))