Projet Euler 80 en Python
Bonjour,
vous connaissez peut-être les problèmes info du site "Project Euler" et celui-ci est plutôt simple (une solution "brute force" suffit). Il s'agit de calculer la somme des 100 premières décimales des racines carrées de tous les entiers non carrés de 1 à 100.
Mon code Python ci-dessous donne $1$ de plus que la bonne réponse. Pourquoi ? Je ne pourrai pas dormir sans savoir. Il donne bien 475 pour $\sqrt{2}$.
vous connaissez peut-être les problèmes info du site "Project Euler" et celui-ci est plutôt simple (une solution "brute force" suffit). Il s'agit de calculer la somme des 100 premières décimales des racines carrées de tous les entiers non carrés de 1 à 100.
Mon code Python ci-dessous donne $1$ de plus que la bonne réponse. Pourquoi ? Je ne pourrai pas dormir sans savoir. Il donne bien 475 pour $\sqrt{2}$.
import math from decimal import * getcontext().prec = 101 s=0 for n in range(0,101): root = Decimal(n).sqrt() if int(root+Decimal(0.5))**2!=n: for digit in str(root).replace('.',"")[:-1]: s=s+int(digit) print(s)Merci.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
getcontext().prec = 102 et str(root).replace('.',"")[:-2] corrigent le problème.
Merci.