#include <cstdio> #include <iostream> #include <cmath> #include <queue> using namespace std; int main() { int n; while (scanf("%d",&n)!=EOF) { int sq=pow(n,2); int n1=n; int digit=0; while(n1!=0) { digit++; n1/=10; } int sq1=pow(10,digit); if(n==sq%sq1) { printf("Yes!"); } else{ printf("No!"); } } }
设输入的数为n,循环整除10获得n的位数digit,再用(n^2)%(10^digit)与n比较。