je ne comprends pas à quoi correspond le n*(n+1)*(n+2) :
N'hésitez pas à m'aider !^^
Supposons qu'on veuille trouver la plus petite valeur de n telle que n(n+1)(n+2) dépasse un million. Ici on ne peut pas utiliser la boucle for puisqu'on ne saurait pas a priori quoi mettre dans range (Si on savait, on aurait la réponse au problème et donc pas besoin de faire de programme...). Voyons un exemple de code qui répond à notre problème
n = 0
while n*(n+1)*(n+2) < 1000000 :
n+=1
print(n)
Notre programme commence avec n=0 puis tant que le calcul de n*(n+1)*(n+2) ne dépasse pas un million, on augmente n de 1 pour tester de nouveau si n*(n+1)*(n+2) ne dépasse pas un million etc. Dés que n*(n+1)*(n+2) dépasse un million, la boucle s'arrête et on affiche la valeur de n qui sera forcément la première telle que n*(n+1)*(n+2) dépasse un million.
On a grossièrement quelque chose de l'ordre de n**3 et la racine cubique de 1000000 est 100. On pourrait commencer un peu avant 100. >>> 99*100*101 999900 >>> n=97 >>> while n*(n+1)*(n+2) < 1000000: ... n+=1 ... >>> n 100 >>> On peut chercher avec des moyens plus rapides comme la recherche dichotomique, mais c'est plus compliqué.
Le Tout est souvent plus grand que la somme de ses parties.
On a grossièrement quelque chose de l'ordre de n**3 et la racine cubique de 1000000 est 100. On pourrait commencer un peu avant 100. >>> 99*100*101 999900 >>> n=97 >>> while n*(n+1)*(n+2) < 1000000: ... n+=1 ... >>> n 100 >>> On peut chercher avec des moyens plus rapides comme la recherche dichotomique, mais c'est plus compliqué.
Le Tout est souvent plus grand que la somme de ses parties.