Cod sursa(job #1596537)
Utilizator | Data | 11 februarie 2016 10:04:54 | |
---|---|---|---|
Problema | Factorial | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <stdio.h>
int zero(int n)
{
int nr = 0;
while(n >= 5)
{
nr += n / 5;
n /= 5;
}
return nr;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
int p,st = 1, dr = 1 << 27,g = 1,sol = 1 << 27,m,z;
scanf("%d",&p);
while(st <= dr)
{
m = (st + dr) / 2;
if(zero(m) >= p)
{
if(sol > m )
sol = m;
dr = m - 1;
}
else
{
st = m + 1;
}
}
printf("%d\n",sol);
return 0;
}