玲玲喜欢通过玩数字游戏的方式来加深别人对她的印象。她最喜欢的一个数字游戏是让人给出一个数N,然后她会立即说出N的阶乘最末尾有多少个连续的零。很显
然,这会让别人会对她印象深刻,因为,一般来说N!是一个非常大的数。例如,N为100时,100!会比地球上所有原子的数目还要大,但玲玲可以很快说出
100!末尾有连续24个0。但是,她的一些朋友通常不是以10为进制的。这时,玲玲却不知道该怎么修改她的技巧来适应这些朋友了。
题目:
新建 Microsoft Word 1文档.rar 代码:
test.rar - #include <stdio.h>
-
#include <limits.h>
-
int main(void)
-
{
-
int a[30], b[30], count, c=0, n, k, m, i, j, s=0, min;
-
scanf("%d", &count);
-
while (++c<=count)
-
{
-
scanf("%d%d", &k, &n);
-
if ((m=k)&1) j=0;
-
else
-
{
-
j=*b=1;
-
while (!((m>>=1)&1)) ++*b;
-
*a=2;
-
}
-
for (i=3; m>1; i+=2)
-
{
-
if (m%i==0)
-
{
-
b[j]=1;
-
while ((m/=i)%i==0) b[j]++;
-
a[j++]=i;
-
}
-
}
-
min=INT_MAX;
-
while (j)
-
{
-
for (s=0, i=a[--j]; i<=n; s+=n/i, i*=a[j]);
-
if ((a[j]=s/b[j])<min) min=a[j];
-
}
-
printf("Scenario #%d:%d\n", c,min);
-
}
-
return 0;
-
}
- ywx@yuweixian:~/yu/c$ gcc test.c -o test
-
ywx@yuweixian:~/yu/c$ chmod u+x test
-
ywx@yuweixian:~/yu/c$ ./test
-
3
-
25
-
10100
-
Scenario #1:1261
-
4510000
-
^C
-
ywx@yuweixian:~/yu/c$ ./test
-
3
-
2
-
5
-
Scenario #1:3
-
10
-
100
-
Scenario #2:24
-
45
-
10000
-
Scenario #3:2498
-
ywx@yuweixian:~/yu/c$ ls
阅读(1064) | 评论(0) | 转发(0) |