【发布时间】:2015-07-24 11:37:46
【问题描述】:
Project Euler's problem number 80 读作:
众所周知,如果自然数的平方根不是 整数,那么它是无理数。这种平方的十进制展开 根是无限的,根本没有任何重复的模式。
二的平方根是
1.41421356237309504880...,数字 前一百位小数的总和是475。对于前一百个自然数,求总和 所有的前一百个十进制数字的数字和 无理数平方根。
这是我为这个问题生成的代码:
from decimal import *
from math import sqrt
getcontext().prec = 100
def digitalsum(n):
sum = 0
for a in n:
sum += int(a)
return sum
total = 0
for a in range(1, 101):
if not sqrt(a) % 1 == 0:
ans = str(Decimal(a).sqrt())
ans = ans[2::]
print(a)
print(digitalsum(ans))
print("-------")
total += digitalsum(ans)
print(total)
它显示了错误的答案,我想我在此过程中错过了一些东西。任何形式的帮助表示赞赏。
【问题讨论】:
标签: python square-root