4661 - 八进制回文平方数

题目描述
  • 八进制数:指逢 8 进位的一种进位计数制,以 01234567 共八个数码表示。例如:十进制数 8 等于八进制数 10,十进制数 64 等于八进制数 100,以此类推。
  • 回文数:反向排列与原来一样的数。例如,12321 是回文数,1231 不是回文数。
  • 平方数:可以写成某个整数的平方的数。例如,9 = 3^29 是一个平方数。

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

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

例如N=20,在 1 \sim 20 之间满足要求的数有 149,因为有:

  • 1 转换为八进制为 1,是一个回文数;且 1 = 1^2,是一个平方数;
  • 4 转换为八进制为 4,是一个回文数;且 4 = 2^2,是一个平方数;
  • 9 转换为八进制为 11,是一个回文数;且 9 = 3^2,是一个平方数。

故输出 1\ 4\ 9

输入

输入一个十进制正整数 N(1 \le N \le 10^9)

输出

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

样例

输入

20

输出

1 4 9
来源

蓝桥杯十四届国赛C++试卷

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 4
通过人数 3
金币数量 1 枚
难度 入门


上一题 下一题