Cod sursa(job #2204118)
| Utilizator | Data | 14 mai 2018 17:50:28 | |
|---|---|---|---|
| Problema | Factorial | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <cstdio>
int fact(int a)
{
int f=1,s=0;
while(f*5<=a)
{
f*=5;
s=s+a/f;
}
return s;
}
int main()
{
int x;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d",&x);
if(x==0)printf("1");
else
{
int st,m,sum,nr;
long long dr;
st=1;
dr= 5 * x;
while(st<=dr)
{
m= (st + dr)/2;
sum=fact(m);
if(sum<x)st=m+1;
else
{
if(sum==x)nr=m;
dr=m-1;
}
}
printf("%d",nr);
}
return 0;
}
