回文数とは左右の両端のどちらから読んでも同じ値になる数のことである。2桁の整数の積で作られる最大の回文数は、9009 = 91$\times$99 である。
では、3桁の整数の積で作られる最大の回文数は?
与えられた数値を文字列に変換し、左右反転したものとオリジナルを比較すれば容易に回文数であることを確認できる。
なお計算量を低減するため、積の可換則を考慮してある。
# SAMPLE_1 def is_palindromic_number(n): s = str(n) if s == s[::-1]: return True return False ans = 0 for i in xrange(100, 1000): for j in xrange(i, 1000): x = i * j if is_palindromic_number(x) is True: if ans < x: ans = x print ans
0 件のコメント:
コメントを投稿