B4276 [蓝桥杯青少年组国赛 2023] 八进制回文平方数
题目背景
- **八进制数**:指逢 $8$ 进位的一种进位计数制,以 $0$、$1$、$2$、$3$、$4$、$5$、$6$、$7$ 共八个数码表示。例如:十进制数 $8$ 等于八进制数 $10$,十进制数 $64$ 等于八进制数 $100$,以此类推。
- **回文数**:反向排列与原来一样的数。例如,$12321$ 是回文数,$1231$ 不是回文数。
- **平方数**:可以写成某个整数的平方的数。例如,$9 = 3^2$,$9$ 是一个平方数。
题目描述
给定一个十进制正整数 $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$)
输出格式
输出一行,包含若干个十进制正整数,表示满足题目要求的数。结果从小到大输出,两个正整数之间用一个空格隔开。