Logo maths-cours.fr

Nombres triangulaires et Python

Exercices

On appelle nombre triangulaire d’ordre $n$ la somme des nombres entiers naturels compris entre $1$ et $n$ :

On notera :

$T_n = 1 + 2 + 3 + \cdots + n$

Par exemple, le nombre triangulaire d’ordre $4$ est :

$T_4 = 1 + 2 + 3 + 4 = 10.$

C’est le nombre de points représentés sur la figure ci-dessous :

Nombres triangulaires
  1. Compléter le programme Python ci-dessous afin qu’il calcule et affiche le nombre triangulaire d’ordre $20$  :

    T=0
    for n in range(...) :
       T = ...
    print(T)

  2. On souhaite déterminer pour quelle valeur de $n$ le nombre triangulaire d’ordre $n$ est supérieur ou égal à $1~000$.

    Compléter le programme Python ci-dessous afin qu’il affiche ce nombre $n$.

    T=0
    n=0
    while ... :
       n = ...
       T = ...
    print(n)

    Saisir ce programme dans un éditeur Python. Quelle valeur de $n$ obtient-on ?

Corrigé

  1. Dans le programme proposé, la variable T représente le nombre triangulaire d’ordre n.

    Pour calculer le nombre triangulaire d’ordre 20, il faut effectuer la somme des entiers compris (au sens large) entre $1$ et $20$.

    Comme range(a,b) renvoie la liste des valeurs comprises (au sens large) entre a et b-1 ; il faut donc utiliser l’instruction range(1, 21 ) pour créer la boucle (l’instruction range(0, 21) ou range(21) est aussi valable puisqu’elle ne fait qu’ajouter $0$ à cette somme).

    Ensuite, à chaque étape de la boucle, on ajoute n à T.

    Voici le programme complet :

    T=0
    for n in range(1,21) :
       T = T+n
    print(T)

    L’exécution de ce programme affiche la valeur 210.

  2. Cette fois, on ne connait pas, dès le départ, le nombre d’itérations. On doit donc utiliser une boucle while (boucle non bornée).

    Ici, la variable T représente le nombre triangulaire d’ordre n.

    On sort de la boucle lorsque T >= 1000, c’est à dire qu’on reste dans la boucle tant que T < 1000.

    À chaque passage dans la boucle, on incrémente n puis on l’ajoute au nombre T :

    T=0
    n=0
    while T < 1000 :
       n = n+1
       T = T+n
    print(n)

Ce programme affiche le nombre $45$ comme résultat.

← Retour au chapitre