根据题意,直接暴力
#include<cstdio>
using namespace std;
int n;
int main()
{
scanf("%d",&n);
for(int i = 1;i <= 9;i ++)
{
for(int j = 0;j <= 9;j ++)
{
for(int k = 0;k <= 9;k ++)
{
for(int l = 0;l <= 9;l ++)
{
if((((i * 10+ j)+(k * 10 + l)) * ((i * 10+ j)+(k * 10 + l))) == (i * 1000 + j * 100 + k * 10 +l))
{
if((i * 1000 + j * 100 + k * 10 +l) < n)
{
printf("%d\n",(i * 1000 + j * 100 + k * 10 +l));
}
}
}
}
}
}
return 0;
}</cstdio>