Pagini recente » Cod sursa (job #764550) | Cod sursa (job #1156548) | Cod sursa (job #1299645) | Cod sursa (job #516099) | Cod sursa (job #1183516)
#include <iostream>
#include <fstream>
using namespace std;
long long fact(long long n){
long long x = 5,rez=0;
while(x <= n){
rez += n / x;
x *=5;
}
return rez;
}
int main()
{
ifstream f("fact.in");
ofstream g("fact.out");
long long n,p;
f>>p;
long long st = 1, dr = (1LL<<60), ok = 0, m;
while(st < dr){
m = (st + dr) / 2;
if(p > fact(m)){
st = m + 1;
}
if(p < fact(m)){
dr = m - 1;
}
if(p == fact(m)){
ok = 1;
break;
}
}
while(fact(m) >= p){
if(fact(m) >= p)
--m;
}
if(ok)
g<<m+1;
else
g<<"-1";
return 0;
}