Cod sursa(job #1655603)
Utilizator | Data | 18 martie 2016 09:24:14 | |
---|---|---|---|
Problema | Factorial | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <cstdio>
using namespace std;
int n,inc,sf,x,mij,nrzero;
int zero(int n)
{
int nz=0;
for(int i=5;i<=n;i*=5)
nz+=(n/i);
return nz;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d ",&n);
if(n==0)
{
printf("1\n");
return 0;
}
inc=1,sf=100000000,x=-1;
while(inc<=sf)
{
mij=(sf+inc)/2;
nrzero=zero(mij);
if(nrzero==n)
{
x=mij;
inc=sf+1;
}
else if(nrzero>n)
sf=mij-1;
else inc=mij+1;
}
printf("%d\n",x-x%5);
return 0;
}