A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 99.
Find the largest palindrome made from the product of two 3-digit numbers.
3桁の整数をfor文で回すのはいいとして回文を判定する函数を用意する必要がある。Pythonなら比較的簡単に書ける。
----
def is_palindrome(moji):
return True if moji == moji[::-1] else False
return True if moji == moji[::-1] else False
print max([ x * y for x in xrange(100,1000) for y in xrange(100,1000) \
if is_palindrome(str(x * y))])
----
今回のポイントはリストのスライスである。
スライスについては各自調べてもらうことにして、意味としてはリストの最初から最後まで-1ステップ、つまり逆向きに出力するという具合である。
さて、回文は英語でpalindromeという。Palindromeというとモンティパイソンの「死んだオウム」スケッチが思い浮かぶ。
第1シーズン第8話の、モンティパイソンを代表するスケッチである。
----
Praline I understand that this is Bolton.
Shopkeeper Yes.
Praline Well, you told me it was Ipswich.
Shopkeeper It was a pun.
Praline A pun?
Shopkeeper No, no, not a pun, no. What's the other thing which reads the same backwards as forwards?
Praline A palindrome?
Shopkeeper Yes, yes.
Praline It's not a palindrome. The palindrome of Bolton would be Notlob. It don't work.
Shopkeeper Yes.
Praline Well, you told me it was Ipswich.
Shopkeeper It was a pun.
Praline A pun?
Shopkeeper No, no, not a pun, no. What's the other thing which reads the same backwards as forwards?
Praline A palindrome?
Shopkeeper Yes, yes.
Praline It's not a palindrome. The palindrome of Bolton would be Notlob. It don't work.
----