特に工夫もなく終わったので2つ同時に
問題 55
英語
https://projecteuler.net/problem=55
日本語
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2055
解答 55
ProjectEuler55.py
def check_palindromic(num):
num_str = str(num)
num_reverse = int(num_str[::-1])
if num == num_reverse:
return 0
else:
return num + num_reverse
def check_Lychrel(num):
num_str = str(num)
num_reverse = int(num_str[::-1])
num_sum = num + num_reverse
for i in range(0,49):
num_sum = check_palindromic(num_sum)
if num_sum == 0:
return False
return True
count = 0
for i in range(1,10001):
if check_Lychrel(i):
count += 1
print(count)
0.142 seconds
問題 56
英語
https://projecteuler.net/problem=56
日本語
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2056
解答 56
ProjectEuler55.py
def digits_sum(num):
num_str = str(num)
num_sum = 0
for i in range(0,len(num_str)):
num_sum += int(num_str[i])
return num_sum
digit_max = 0
for a in range(2,100):
for b in range(2,100):
ab = a**b
digit = digits_sum(ab)
if digit > digit_max:
digit_max = digit
print(digit_max)
0.48 seconds