Bonjour,

J'ai un exercice dont voici l'énoncé :

Votre programme doit d'abord lire un entier, le nombre maximum de pierres dont pourra être composée la pyramide. Il devra ensuite calculer la hauteur de la plus grande pyramide qui pourra être construite, ainsi que le nombre de pierres qui sera nécessaire.

EXEMPLE 1

entrée :
20
sortie :
3
14
EXEMPLE 2

entrée :
26042
sortie :
42
25585
Exemple d'une pyramide :

Nom : schema.png
Affichages : 4334
Taille : 20,6 Ko
On remarque tout de suite qu'il s'agit de la somme d'une suite des n termes au carré : 1, 4, 9, 16, 25 etc..

Ce que j'ai fait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
result = 0
i = 1
maxPierres = int(input())
 
while result < maxPierres:
    result = (i*i) + result
    i = i + 1
print i
print result
Quand je rentre 20, j'obtiens bien le résultat escompté, mais quand je rentre 26042, non. J'ai donc fait un autre programme qui utilise la suite de la somme des n premiers nombres au carré n(n+1)(2*n+1)/6 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
result = 0
n = 1
maxPierres = int(input())
while result < max:
   result = ((n(n+1)(2*n+1))/(6)) + result
   n = n + 1
print (n)
print (result)
mais j'obtiens l'erreur suivante :

Traceback (most recent call last):
File "<stdin>", line 5, in <module>
TypeError: 'int' object is not callable
Merci de votre aide.