一般的なオイラー問題 #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の因数の場合、それが一般的な解であると仮定します)。