Cod sursa(job #1194112)
Utilizator | Data | 2 iunie 2014 20:33:38 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include<cstdio>
#include<algorithm>
using namespace std;
int n,i,j,p,st,dr,m,x,minn;
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d",&p);
st=1; dr=500000000; minn=500000000;
while (st<=dr)
{
m=(st+dr)/2; x=5; n=0;
while (m>=x)
n=n+(m/x),x=x*5;
if (n==p) minn=min(m,minn);
if (n<p) st=m+1; else dr=m-1;
}
if (minn==500000000) minn=-1;
printf("%d",minn);
return 0;
}