Mathématiques (spécialité) · PremièreÉpreuve anticipée de mathématiques
Algorithmes sur les suites : exercices corrigés de 1re spécialité
Publié le 6 novembre 2026 · Mis à jour le 6 novembre 2026 · Signaler une erreur
L'essentiel
- Une suite se programme avec une boucle
forquand le nombre de termes est connu, avec une bouclewhilequand on cherche un seuil. - Pour une suite récurrente, on met à jour une variable ; pour garder tous les termes, on les range dans une liste.
- Une compréhension de liste construit en une ligne les termes d'une suite définie par une formule explicite.
- Dans un seuil, la condition du
whileest la négation de ce qu'on cherche, et le compteur donne le rang cherché. - Toujours contrôler l'algorithme en calculant à la main les deux ou trois premiers termes.
Comment utiliser ces exercices
Un algorithme est une suite finie d'instructions, sans ambiguïté, qui permet de résoudre toute une famille de problèmes.4 Appliqué aux suites, il sert à calculer un terme, à fabriquer la liste des premiers termes ou à trouver à partir de quel rang une suite franchit une valeur donnée. Les programmes de la voie générale placent d'ailleurs les suites parmi les thèmes où l'on modélise et où l'on représente des situations.1
Ces exercices supposent que tu sais déjà manipuler une liste en Python et écrire une compréhension de liste. Ils sont classés par difficulté croissante : les trois premiers (niveau 1) travaillent le calcul de termes, les suivants (niveau 2) introduisent les seuils et la détection d'une nature de suite, les derniers (niveau 3) combinent plusieurs idées.
Les exercices
Exercice 1 Calculer un terme avec une boucle for
On considère la suite définie par et, pour tout entier naturel , .
On propose le script suivant, dont une ligne est à compléter :
u = 5
for i in range(10):
u = ...
print(u)
- Quelle instruction doit remplacer les points de suspension ?
- Quelle valeur le script affiche-t-il ?
- Quel terme de la suite cette valeur représente-t-elle ?
Indice 1
Chaque passage dans la boucle fait passer d'un terme au suivant.
Indice 2
Compte le nombre de passages dans la boucle : range(10) en donne dix.
Voir la correction pas à pas
On lit la relation de récurrence : pour passer d'un terme au suivant, on ajoute 3. L'instruction est donc
u = u + 3.On compte les passages :
range(10)répète la boucle dix fois, en partant de . Après le premier passage,uvaut ; après le dixième,uvaut .On vérifie avec les premiers termes : , , . On ajoute 3 à chaque passage, donc après dix passages on a ajouté au terme de départ.
On calcule : . Le script affiche 35.
La suite est arithmétique de raison 3, donc et . Le nombre de tours de boucle est égal au rang visé quand on part de .
Exercice 2 Construire la liste des premiers termes
On considère la suite définie par et .
- Écris un script Python qui construit la liste
Lcontenant en utilisantL.append. - Donne les huit termes de cette liste.
- Quelle est la valeur de ?
Indice 1
Commence par L = [3], puis ajoute à chaque tour un terme calculé à partir du dernier élément de la liste, L[-1].
Indice 2
Il faut sept ajouts pour passer de la liste à la liste .
Voir la correction pas à pas
On initialise la liste avec le premier terme :
L = [3].On écrit la boucle :
for i in range(7): L.append(2 * L[-1] - 1). Sept passages ajoutent à derrière .On calcule à la main pour contrôler : , , , , , , .
On lit le résultat :
Lvaut[3, 5, 9, 17, 33, 65, 129, 257]et .
On remarque que double à chaque rang : , ce qui donne . Garder la liste complète permet ensuite de repérer des régularités.
Exercice 3 Somme de termes avec une compréhension de liste
Pour tout entier naturel , on pose .
- Écris en une seule ligne une compréhension de liste qui donne .
- Écris l'instruction qui calcule la somme .
- Calcule et vérifie ton résultat par une formule.
Indice 1
La formule est explicite : pas besoin de mémoriser le terme précédent, on remplace directement .
Indice 2
La fonction sum additionne tous les éléments d'une liste.
Voir la correction pas à pas
On écrit la liste :
[3 * n + 2 for n in range(10)]. La variablenprend les valeurs de 0 à 9.On additionne :
S = sum([3 * n + 2 for n in range(10)]).On calcule à la main : les termes vont de à et forment une suite arithmétique de dix termes.
On applique la formule « nombre de termes × (premier + dernier) ÷ 2 » : . Le script et la formule concordent.
Une compréhension de liste convient dès que la suite est donnée par une formule explicite. Le contrôle par une formule est un bon réflexe : si les deux résultats diffèrent, le décalage de range est le premier suspect.
Exercice 4 Premier rang où des billes dépassent un seuil
On construit des motifs avec des billes. Le premier motif utilise 2 billes, le deuxième 6, le troisième 12, le quatrième 20.3 On note le nombre de billes du motif numéro , avec .
- Vérifie que la formule est cohérente avec les quatre motifs donnés.
- Écris un algorithme qui détermine le plus petit rang tel que .
- Quelle valeur de obtient-on ?
Indice 1
Un problème de seuil se résout naturellement avec une boucle while, qu'on arrête dès que la condition est atteinte.3
Indice 2
La condition de la boucle est le contraire de ce qu'on cherche : on continue tant que .
Voir la correction pas à pas
On teste la formule : , , , . Les quatre valeurs correspondent.
On initialise :
n = 1.On écrit la boucle :
while n * (n + 1) <= 500: n = n + 1. Tant que le nombre de billes ne dépasse pas 500, on passe au motif suivant.On lit le résultat : à la sortie de la boucle,
nest le premier rang pour lequel .On contrôle à la main autour du seuil : , qui est inférieur à 500, et , qui est supérieur à 500. Le rang cherché est 22.
Le motif numéro 22 est le premier à demander plus de 500 billes, avec 506 billes. Ici le compteur n sert à la fois de variable de boucle et de réponse.
Exercice 5 Capital placé et seuil
Un capital de 1000 euros est placé à intérêts composés : chaque année, il augmente de 3 %. On note le capital après années, avec .
- Exprime en fonction de .
- Écris un algorithme qui renvoie le nombre d'années nécessaires pour que le capital dépasse 1200 euros.
- Quel nombre d'années obtient-on ?
Indice 1
Augmenter de 3 % revient à multiplier par 1,03.
Indice 2
Utilise deux variables : le capital c et le nombre d'années n, toutes deux mises à jour dans la boucle.
Voir la correction pas à pas
On traduit la hausse : . La suite est géométrique de raison 1,03.
On initialise :
c = 1000etn = 0.On écrit la boucle :
while c <= 1200: c = c * 1.03puisn = n + 1à l'intérieur de la boucle.On suit les valeurs à la main : , , , , , , .
Le capital passe au-dessus de 1200 euros au septième passage : le script affiche
n = 7.
Il faut 7 ans. Après 6 ans, le capital (environ 1194 euros) reste juste sous le seuil : c'est typiquement le cas où une estimation « à vue » se trompe d'un rang et où l'algorithme protège de l'erreur. Une activité de ce type existe aussi avec des mensualités de prêt : on y demande un algorithme qui détermine le nombre de mensualités.3
Exercice 6 Repérer une suite géométrique par programme
On dispose de trois listes de nombres :
A = [2, 6, 18, 54]
B = [1, 4, 9, 16]
C = [5, 5, 5, 5]
- Écris une fonction
est_geometrique(L)qui renvoieTruesi le quotient de deux termes consécutifs est constant, etFalsesinon (les listes ne contiennent aucun zéro). - Que renvoie-t-elle pour
A,BetC? - Quelle est la raison de la suite dont les termes sont ceux de
A?
Indice 1
Calcule le quotient L[1] / L[0], puis compare-le à tous les autres quotients L[i+1] / L[i].
Indice 2
Les calculs avec des nombres décimaux peuvent produire de petites erreurs d'arrondi ; ici, avec des entiers simples, la comparaison directe suffit, mais on peut aussi comparer les produits en croix.
Voir la correction pas à pas
On mémorise le premier quotient :
q = L[1] / L[0].On parcourt la liste :
for i in range(1, len(L) - 1): if L[i+1] / L[i] != q: return False. Dès qu'un quotient diffère, on peut conclure.Si la boucle va jusqu'au bout sans rien renvoyer, on termine par
return True.Pour
A: , , ; la fonction renvoieTrue. PourB: mais ; elle renvoieFalse. PourC: tous les quotients valent 1 ; elle renvoieTrue.La raison de la suite associée à
Aest le quotient commun : .
Une suite constante comme C est géométrique de raison 1 (et aussi arithmétique de raison 0). L'algorithme ne prouve pas qu'une suite infinie est géométrique : il vérifie seulement les termes de la liste, ce qui permet de formuler une conjecture à démontrer ensuite.
Exercice 7 Première somme qui dépasse mille
Pour tout entier naturel , on pose et, pour tout entier naturel , .
- Écris un algorithme qui détermine le plus petit entier tel que .
- Montre que .
- Utilise cette formule pour vérifier la valeur de trouvée par l'algorithme.
Indice 1
Utilise deux variables qui évoluent ensemble : la somme S et l'indice n.
Indice 2
Pour la formule, la somme des entiers de 1 à vaut , et il y a termes dans .
Voir la correction pas à pas
On initialise avec le premier terme :
n = 0,S = 2(c'est ).On écrit la boucle :
while S <= 1000: n = n + 1puisS = S + 3 * n + 2. On ajoute le terme de rang après avoir augmenté .Pour la formule, on sépare la somme : .
On teste autour du seuil : pour , , qui est inférieur à 1000.
Pour , , qui est supérieur à 1000. L'algorithme s'arrête donc sur .
Le plus petit rang est , avec . L'algorithme fonctionne même quand on ne connaît pas de formule, tandis que la formule sert à confirmer le résultat et à justifier qu'il est le plus petit : .
Exercice 8 Rapprochement d'une valeur limite
On considère la suite définie par et .
- Calcule , et à la main.
- On pose . Montre que est géométrique et donne son terme général.
- Écris un algorithme qui renvoie le plus petit rang tel que , puis donne ce rang.
Indice 1
Pour la question 2, calcule en remplaçant par son expression et factorise.
Indice 2
Pour la question 3, la condition de la boucle while utilise abs(u - 8) >= 0.01.
Voir la correction pas à pas
On calcule : , , . Les termes diminuent et semblent se rapprocher de 8.
On calcule .
On en déduit que est géométrique de raison 0,5 et de premier terme , donc et .
On écrit l'algorithme :
u = 20,n = 0, puiswhile abs(u - 8) >= 0.01: u = 0.5 * u + 4etn = n + 1.On cherche à la main : . Pour , cela vaut , qui n'est pas inférieur à 0,01. Pour , cela vaut , qui est inférieur à 0,01. Le rang cherché est 11.
Le rang est . La condition équivalente montre pourquoi : est trop petit, suffit. Transformer une suite récurrente en suite géométrique auxiliaire permet de confirmer ce que l'algorithme découvre par essais.
Les questions qu'on se pose
Quand utiliser une boucle for et quand utiliser une boucle while pour une suite ?
Utilise for quand l'énoncé fixe le nombre de termes à calculer : « calculer », « donner les huit premiers termes ». Utilise while quand on cherche un seuil, c'est-à-dire un rang qu'on ne connaît pas à l'avance : « le plus petit tel que ». Dans le second cas, on écrit comme condition le contraire de ce qu'on cherche, et on incrémente un compteur dans la boucle.
Pourquoi mon algorithme donne-t-il un rang trop grand ou trop petit d'une unité ?
C'est presque toujours un problème d'initialisation ou d'ordre des instructions. Vérifie trois choses : le compteur démarre-t-il au bon rang (0 ou 1) ? Mets-tu à jour le terme avant ou après avoir augmenté le compteur ? La comparaison est-elle stricte (>) ou large (>=) comme dans l'énoncé ? Le plus sûr est de tester l'algorithme sur un seuil dont tu connais la réponse, par exemple un seuil entre et calculés à la main.
Un algorithme peut-il remplacer une démonstration sur les suites ?
Non. Un algorithme calcule un nombre fini de termes : il permet de conjecturer (une suite semble géométrique, semble croissante, semble converger) ou de trouver un seuil, mais il ne prouve pas une propriété valable pour tous les rangs. À l'épreuve, on te demande souvent les deux : l'algorithme pour explorer, puis un raisonnement (calcul de , d'un quotient, ou récurrence) pour justifier.
Sources
- Programmes et ressources en mathématiques — voie générale et technologique, Éduscol. Consulté le 6 novembre 2026.
- Algorithmique et programmation — Informer et accompagner, Éduscol. Consulté le 6 novembre 2026.
- Modéliser et Représenter — Ressource académique, Ressources Académiques. Consulté le 6 novembre 2026.
- Algorithme, Wikipédia. Consulté le 6 novembre 2026.
- Algorithme D*, Wikipédia. Consulté le 6 novembre 2026.
Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.