第33678题 程序题
查找1~N范围内的八进制回文平方数

八进制回文平方数

时间限制: 1 Sec 内存限制: 128 MB

题目描述

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

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

例如:$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是一个平方数。
程序运行统计
暂无判题统计