#include <bits/stdc++.h> int rev(int n){//反转整数 int result = 0;//保存翻转后的结果 while(1)//while(true)也可以 { int i = n%10;//每次都是得到最低位上的数字 result = result*10+i;//将最低位作为最高位,然后得到sum n = n/10;//把原来的数字逐渐缩小 if(n == 0) { break; } } return result; } int main(){ int i; for(i=1;i<256;i++) if(i*i==rev(i*i)) printf("%d\n",i); return 0; }