Si tu lances ton programme et que tu fais vite un CTRL+C pour l'arrêter et que tu regardes le début de la série, tu as bien :
2, 4, 16, 256, 65536, 4'294'967'296 et le nombre suivant devrait être 1,844674407370955 * 10^19, ce qui est un peu supérieur à la limite (2^64 = 1.8446744 * 10^19). Tu dépasses la limite en seulement 7 tours de boucle...
Donc ton code fonctionne, c'est juste que tu dépasses la limite d'un unsigned long long et que tu tombes sur 0 et que 0*0=0 donc forçément tu vas rester coincé sur cette valeur.
Si c'est ce que tu cherches, je crois qu'il existe des bibliothèques qui permettent de dépasser cette limite en stockant les entiers d'une manière différente.
ne peut pas multiplier un nombre par lui même
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Le Tout est souvent plus grand que la somme de ses parties.