Cod sursa(job #1991465)
| Utilizator | Data | 16 iunie 2017 21:26:03 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
#include<cstdio>
using namespace std;
inline int zeros(int x)
{
int a=0;
while(x)
{
a+=x/5;
x/=5;
}
return a;
}
inline int binarysearch(int x)
{
int step=1<<30 ,i;
for(i=1<<30;step;step>>=1)
if(zeros(i-step)>=x)
i-=step;
if(zeros(i)==x)
return i;
return -1;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
int i,j,x;
scanf("%d",&x);
if(x==0)
printf("1");
else
printf("%d",binarysearch(x));
}
