Cod sursa(job #1003935)
| Utilizator | Data | 1 octombrie 2013 19:47:50 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include<fstream>
#include<climits>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long n;
long long term(long long k)
{
long long r=5,rez=0;
while (k/r)
{
rez+=k/r;
r*=5;
}
return rez;
}
int main()
{
long long m,st=1,dr=LLONG_MAX/2;
f>>n;
while (st<=dr)
{
m=(st+dr)/2;
if (term(m)>=n) dr=m-1;
else st=m+1;
}
if (term(dr+1)==n)
g<<dr+1<<'\n';
else g<<"-1\n";
return 0;
}
