1091 N-自守数 (15分)

1091 N-自守数 (15分)
 

如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”。例如 3,而 2 的末尾两位正好是 9,所以 9 是一个 3-自守数。

本题就请你编写程序判断一个给定的数字是否关于某个 N 是 N-自守数。

输入格式:

输入在第一行中给出正整数 M(≤),随后一行给出 M 个待检测的、不超过 1000 的正整数。

输出格式:

对每个需要检测的数字,如果它是 N-自守数就在一行中输出最小的 N 和 NK2​​ 的值,以一个空格隔开;否则输出 No。注意题目保证 0。

输入样例:

3
92 5 233
 

输出样例:

3 25392
1 25
No


代码讲解:此题只要求出是几位数,把他的权重求出来取余就好了。。。。比较相等就好了
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int n,m,i,count,temp;
 5     scanf("%d",&n);
 6     while(n--)
 7     {
 8         count=1;
 9         scanf("%d",&m);
10         temp=m;
11         while(temp!=0)
12         {
13             count*=10;
14             temp/=10;
15         }
16         for(i=1;i<10;i++)
17         {
18             if(i*m*m%count==m)
19             break;
20         }
21         if(i==10)
22         {
23             printf("No\n");
24         }
25         else
26         {
27             printf("%d %d\n",i,i*m*m);
28         }
29     }
30     return 0;
31  } 

 





posted @ 2020-11-24 16:06  罪梦者  阅读(117)  评论(0)    收藏  举报