#include <stdio.h>
#define maxSize 100
int main()
{
int i=1,j,k,l,d;//循环变量
int n;//平方数
int m=0;//数组下标
int arr[maxSize];//存储平方数集合
int num[10];//暂存数组
int flag=0;//标记
while(1)//生成三位平方数
{
n=i*i;
if(n>99&&n<1000) arr[++m]=n;//数组下标从1开始
if(n>1000) break;
i++;
}
for(i=1;i<=m;i++)//判断构成三组数不重复
{
num[1]= arr[i] / 1 % 10;
num[2]= arr[i] / 10 % 10;
num[3]= arr[i] / 100 % 10;
for(j=i+1;j<=m;j++)
{
num[4]= arr[j] / 1 % 10;
num[5]= arr[j] / 10 % 10;
num[6]= arr[j] / 100 % 10;
for(k=j+1;k<=m;k++)
{
num[7]= arr[k] / 1 % 10;
num[8]= arr[k] / 10 % 10;
num[9]= arr[k] / 100 % 10;
flag=0;//重复标记初始化,每次都需初始化
//判断是否重复
for(l=1;l<=9;l++)
{
for(d=l+1;d<=9;d++)
{
if(num[l]==num[d]) flag=1;
}
}
if(flag==0) //如果不重复
{
printf("%d %d %d\n",arr[i],arr[j],arr[k]);
}
}
}
}
}