Bonjour,

Je souhaite réaliser un programme sur les nombres triangulaires.

Le but du programme est que l'utilisateur doit donner un nombre, et le programme dit s'il est triangulaire ou pas.

Je ne souhaite pas utiliser une liste de nombre, mais la formule n(n+1)/2.

Le problème est que peut importe le nombre que je mets, il me dit toujours qu'il n'est pas triangulaire. Savez-vous où peut venir le problème?

Merci d'avance

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import math 
 
#donne la liste de tous les triangulaires entre 1 et n 
def triangulaires(n): 
    return [i*(i+1)/2 for i in range(1,n+1)] 
 
#teste si un nombre est triangulaire 
def est_triangulaire(n): 
    r=int(math.sqrt(2*n)) 
    if n==r*(r+1)/2 or n==(r+1)*(r+2)/2: 
        return True 
    else: 
        return False 
 
 
test = raw_input("Donnez un nombre pour savoir s'il est triangulaire : ")
if test == est_triangulaire:
    print (test + " est un nombre triangulaire")
 
if test != est_triangulaire:
    print (test + " n'est pas un nombre triangulaire")