Cod sursa(job #1170126)
Utilizator | Data | 12 aprilie 2014 18:27:20 | |
---|---|---|---|
Problema | Factorial | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <iostream>
#include <cstdio>
using namespace std;
long long p,dr,m;
int Nrz(int x){
int p,d;
d = 0; p = 5;
while (x/p)
{
d+=(x/p);
p*=5;
}
return d;
}
int main(){
int st,m,i;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lld",&p);
st = 1; dr = 5*p; i = -1;
while(st < dr)
{
m = (st+dr)/2;
if(Nrz(m) < p)
st = m+1;
else if(Nrz(m) > p)
dr = m-1;
else if(Nrz(m) == p)
{i = m;dr=m-1;}
}
printf("%d\n",i);
return 0;
}