If we take , reverse and add,
, which is
palindromic.
Not all numbers produce palindromes so quickly. For example,
That is, took three
iterations to arrive at a palindrome.
Although no one has proved it yet, it is thought that some numbers,
like , never produce a
palindrome. A number that never forms a palindrome through the reverse
and add process is called a Lychrel number. Due to the theoretical
nature of these numbers, and for the purpose of this problem, we shall
assume that a number is Lychrel until proven otherwise. In addition you
are given that for every number below ten-thousand, it will either (i)
become a palindrome in less than fifty iterations, or, (ii) no one, with
all the computing power that exists, has managed so far to map it to a
palindrome. In fact, 10677 is the first number to be shown to require
over fifty iterations before producing a palindrome: ( iterations, -digits).
Surprisingly, there are palindromic numbers that are themselves
Lychrel numbers; the first example is .
How many Lychrel numbers are there below ten-thousand?
NOTE: Wording was modified slightly on April to emphasise the theoretical nature
of Lychrel numbers.
解决方案
本题将迭代上限定为,因此如果 次迭代完成后仍不是回文数,那么这个数是所要求的。
因此通过 Python 直接进行暴力枚举迭代。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
N = 10000 M = 50 ans = 0 for i inrange(1, N): w = i for i inrange(M): s = str(w) w = int(s) + int(s[::-1]) s = str(w) if s == s[::-1]: break s = str(w) if s != s[::-1]: ans += 1 print(ans)