lightoj-【1138 - Trailing Zeroes (III)】

来源:互联网 发布:长戟大兜虫淘宝 编辑:程序博客网 时间:2024/06/05 23:43
1138 - Trailing Zeroes (III)
   PDF (English)StatisticsForum
Time Limit: 2 second(s)Memory Limit: 32 MB

You task is to find minimal natural number N, so that N! contains exactly Q zeroes on the trail in decimal notation. As you know N! = 1*2*...*N. For example, 5! = 120, 120 contains one zero on the trail.

Input

Input starts with an integer T (≤ 10000), denoting the number of test cases.

Each case contains an integer Q (1 ≤ Q ≤ 108) in a line.

Output

For each case, print the case number and N. If no solution is found then print 'impossible'.

Sample Input

Output for Sample Input

3

1

2

5

Case 1: 5

Case 2: 10

Case 3: impossible

 

<span style="font-size:18px;">#include<cstdio>#define max 0x7f7f7f7f#define LL long longLL n;LL judge(LL mid){LL sum=0,i;while(mid){sum+=mid/5;mid/=5;}return sum;}int main(){int t,text=1;scanf("%d",&t);while(t--){scanf("%lld",&n);printf("Case %d: ",text++);LL left=0,right=max,mid;while(left<=right){mid=(right+left)>>1;//到了最后left和right值肯定相等这时的mid也就是最优解 if(judge(mid)>=n)//我们的条件是满足的话right=mid-1;那么跳出循环时 {//left是最优解 right=mid-1;}else{left=mid+1;}}if(judge(left)==n)printf("%lld\n",left);elseprintf("impossible\n");}return 0;}</span>



0 0
原创粉丝点击