LoginSignup
1
0

More than 3 years have passed since last update.

Project Euler 55,56をPythonでやってみる

Posted at

特に工夫もなく終わったので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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0