luogu#B4276. [蓝桥杯青少年组国赛 2023] 八进制回文平方数

[蓝桥杯青少年组国赛 2023] 八进制回文平方数

题目背景

  • 八进制数:指逢 88 进位的一种进位计数制,以 0011223344556677 共八个数码表示。例如:十进制数 88 等于八进制数 1010,十进制数 6464 等于八进制数 100100,以此类推。
  • 回文数:反向排列与原来一样的数。例如,1232112321 是回文数,12311231 不是回文数。
  • 平方数:可以写成某个整数的平方的数。例如,9=329 = 3^299 是一个平方数。

题目描述

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

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

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

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

故输出 1 4 91\ 4\ 9

输入格式

输入一个十进制正整数 NN1N1091 \leq N \leq 10^9

输出格式

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

20
1 4 9