#968. [蓝桥杯] 八进制回文平方数

[蓝桥杯] 八进制回文平方数

题目描述

给定一个十进制正整数N (1 ≤ N ≤ 10910^9) ,请从小到大输出1~ N 之间 (含1和N) 所有满足以下要求的数:

1.这个数转换为八进制后是一个回文数

2.这个数是一个平方数。

例如: N=20,在1~ 20之间满足要求的数有1、4、9,因为有,

1 转换为八进制为1,是一个回文数;且1 = 121^2,是一个平方数

4 转换为八进制为4,是一个回文数; 且4 = 222^2,是一个平方数

9 转换为八进制为11,是一个回文数:;且9 = 323^2,是一个平方数。

故输出 1 4 9

输入

输入一个十进制正整数N(1 ≤ N ≤ 10910^9

输出

输出一行,包含若干个十进制正整数,表示满足题目要求的数。结果从小到大输出,两个正整数之间用一个空格隔开。

样例

20
1 4 9

提示

八进制数: 指逢8进位的一种进位计数制,以0、1、2、3、4、5、6、7共八个数码表示。例如: 十进制数8等于八进制数10,十进制数64等于八进制数100,以此类推。

回文数: 反向排列与原来一样的数。例如,12321是回文数,1231不是回文数。

平方数: 可以写成某个整数的平方的数。例如,9 = 323^2,9 是一个平方数。