26 lines
542 B
Python
26 lines
542 B
Python
|
|
def fiter(a, finit, fcntn, ftrns):
|
|
x = finit(a)
|
|
while fcntn(a, x):
|
|
x = ftrns(a, x)
|
|
return x
|
|
|
|
|
|
def newton_root(a):
|
|
return fiter(a,
|
|
lambda x: x // 2,
|
|
lambda p, x: not (0 < p - x ** 2 < 2 * x + 1),
|
|
lambda p, x: (x + p // x) // 2)
|
|
|
|
|
|
def all_root(limit, digit):
|
|
root_sum = []
|
|
digit -= 1
|
|
for x in range(2, limit + 1):
|
|
if int(x ** 0.5) ** 2 != x:
|
|
root_sum.append(sum(map(lambda x: int(x), str(newton_root(100 ** digit * x)))))
|
|
return root_sum
|
|
|
|
print(sum(all_root(100, 100)))
|
|
|