查找1~N范围内的八进制回文平方数
八进制回文平方数
时间限制: 1 Sec
内存限制: 128 MB
题目描述
给定一个十进制正整数$N (1 \leq N \leq 10^9)$,请从小到大输出$1 \sim N$之间(含1和$N$)所有满足以下要求的数:
- 这个数转换为八进制后是一个回文数
- 这个数是一个平方数。
例如:$N=20$,在$1 \sim 20$之间满足要求的数有1、4、9,因为:
- 1转换为八进制为1,是回文数,且$1 = 1^2$,是平方数
- 4转换为八进制为4,是回文数,且$4 = 2^2$,是平方数
- 9转换为八进制为11,是回文数,且$9 = 3^2$,是平方数。
故输出
1 4 9
输入
输入一个十进制正整数$N(1 \leq N \leq 10^9)$
输出
输出一行,包含若干个十进制正整数,表示满足题目要求的数。结果从小到大输出,两个正整数之间用一个空格隔开
样例输入
20
样例输出
1 4 9
提示
- 八进制数:指逢8进位的进位计数制,以0、1、2、3、4、5、6、7共八个数码表示。例如:十进制数8等于八进制数10,十进制数64等于八进制数100,以此类推。
- 回文数:反向排列与原来一样的数。例如,12321是回文数,1231不是回文数。
- 平方数:可以写成某个整数的平方的数。例如,$9 = 3^2$,9是一个平方数。