核心定义:一个正整数既是回文数,又是某个回文数的平方,称为“超级回文数”。
直接在区间内逐个检查代价巨大。由于 R≤1020,其平方根上界为 1010。因此我们只需生成所有不超过 1010 的回文根,再对每个根平方并判断是否回文且落在 [L,R] 内。
生成回文根的方法(经典构造)
s(长度最多 5)。s + reverse(s[:-1])(如 123→12321)。s + reverse(s)(如 123→123321)。如果一个正整数自身是回文数,而且它也是一个回文数的平方,那么我们称这个数为超级回文数。
现在,给定两个正整数 L 和 R,请按照从小到大的顺序打印包含在范围 [L,R] 中的所有超级回文数。