0

一般的なオイラー問題 #4の演算数を削減するために、いくつかの基本的な最適化を試みました。

def is_palindrome(num):
    return str(num) == str(num)[::-1]

def fn(n):
    max_palindrome = 1
    for x in range(n,1,-1):
        for y in range(n,x-1,-1):
            if is_palindrome(x*y) and x*y > max_palindrome:
                max_palindrome = x*y
            elif x * y < max_palindrome:
                break
    return max_palindrome

print fn(999)

これをさらに最適化できますか/どうすればよいですか? (最大999ではなく最大nの因数の場合、それが一般的な解であると仮定します)。

4

1 に答える 1