#include<stdio.h>#include<math.h>voidAllNums(int* p,int n)//求出三位数的每位并存于数组{int i =0;while(n){
p[i++]= n %10;
n /=10;}}intmain(){int a[3]={0}, b[3]={0}, i, j,y1=0,y2=0,y3=0;for(i=10;i<32;i++)//穷举法for(j =10; j <32; j++){AllNums(a, i * i);AllNums(b, j * j);if(a[1]==0|| a[2]==0)break;//若出现数字0的情况则跳出forif(sqrt(a[0]*10+ b[0])==(int)sqrt(a[0]*10+ b[0])&&sqrt(a[1]*10+ b[1])==(int)sqrt(a[1]*10+ b[1])&&sqrt(a[2]*10+ b[2])==(int)sqrt(a[2]*10+ b[2])){printf("The possible perfect squares combinations are:\n");printf("%d and %d\n", i * i, j * j);}}return1;}