プロジェクト オイラーの問題 #80 は単純に見えます。
https://projecteuler.net/problem=80
decimal モジュールを使用して、指定された精度で平方根を計算します。
from decimal import Decimal, localcontext
def prob80():
total = 0
for x in range(1,100):
with localcontext() as ctx:
ctx.prec = 100
total+=sum([int(i) for i in str(Decimal(x).sqrt())[2:]])
return total
print prob80()
私は 40308 を返しますが、これは正しい答えからはずれていると理解しています。最初の 10 個の自然数の平方根のデジタル和については、次のように返します。
0 475 441 0 472 470 397 463 0 456
ここのエラーはどこですか?ある種の丸め誤差が原因だと思いますが、解決できないようです。