https://vjudge.net/contest/276155#problem/N
因为只有与5相乘才会得0,所以只用求5的个数即可。
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<map>
#define inf 99999999
#define mod 9973
using namespace std;
int tongji(int x)
{
int ans=0;
while(x)
{
ans+=x/5;
x=x/5;
}
return ans;
}
int serch(int n)
{
long long lower,upper,mid;
lower=1,upper=500000000;
while(lower<=upper)
{
mid=(lower+upper)/2;
if(tongji(mid)<n)
lower=mid+1;
else
upper=mid-1;
}
if(tongji(lower)==n)
return lower;
else
return 0;
}
int main()
{
int t;
int m;
int k=0;
scanf("%d",&t);
while(t--)
{
scanf("%d",&m);
if(serch(m)==0)
printf("Case %d: impossible\n",++k);
else
printf("Case %d: %d\n",++k,serch(m));
}
return 0;
}