如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”。例如 3,而 2 的末尾两位正好是 9,所以 9 是一个 3-自守数。
本题就请你编写程序判断一个给定的数字是否关于某个 N 是 N-自守数。
输入格式:
输入在第一行中给出正整数 M(≤),随后一行给出 M 个待检测的、不超过 1000 的正整数。
输出格式:
对每个需要检测的数字,如果它是 N-自守数就在一行中输出最小的 N 和 NK?2?? 的值,以一个空格隔开;否则输出 No
。注意题目保证 0。
输入样例:
3
92 5 233
输出样例:
3 25392
1 25
No
1 #include <stdio.h> 2 #include <math.h> 3 4 int main(){ 5 int n,m,k,k2,zi=0; 6 scanf("%d",&m); 7 for(int i=0;i<m;i++){ 8 scanf("%d",&k); 9 k2=pow(k,2); 10 //printf("%d\n",k2); 11 zi=0; 12 if(k<10){ 13 for(int j=1;j<=10;j++){ 14 if(k2*j%10 == k){ 15 printf("%d %d\n",j,k2*j);zi++;break; 16 } 17 } 18 }else if(k<100){ 19 for(int j=1;j<=10;j++){ 20 if(k2*j%100 == k){ 21 printf("%d %d\n",j,k2*j);zi++;break; 22 } 23 } 24 }else if(k<1000){ 25 for(int j=1;j<=10;j++){ 26 if(k2*j%1000 == k){ 27 printf("%d %d\n",j,k2*j);zi++;break; 28 } 29 } 30 } 31 if(zi==0) 32 printf("No\n"); 33 34 } 35 36 return 0; 37 }
原文地址:https://www.cnblogs.com/geyang/p/12292296.html
时间: 2024-10-16 12:23:48