AC代码
#include<stdio.h>
#include<math.h>
int check(int n,int k){//判断自守数
int s=n*k*k,c=0,K=k;
while(K!=0){//计算k的位数
K/=10;
c++;
}
if((s-k)%((int)pow(10,c))==0)return 1;//比如题目的25392-92=25300,模100等于0
return 0;
}
int main(){
int m,k,n;
scanf("%d",&m);
for(int i=0;i<m;i++){
scanf("%d",&k);
for(n=1;n<10;n++){
if(check(n,k))break;
}
if(n<10)printf("%d %d\n",n,n*k*k);
else printf("No\n");
}
return 0;
}