nombre triangulaire en python
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:
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") |