Pagini recente » Cod sursa (job #636250) | Cod sursa (job #2041616) | Cod sursa (job #1189422) | Cod sursa (job #377123) | Cod sursa (job #2277922)
#include<fstream>
#define P 61
#define MULT (long long)(1e18 + 1)
using namespace std;
ifstream cin("fact.in");
ofstream cout("fact.out");
long long no_zero(long long n){
long long ans = 0;
long long pow5 = 1;
while(n / 5 >= pow5){
pow5 *= 5;
ans += (n / pow5);
if (ans > MULT || ans < 0) return MULT;
}
return ans;
}
long long binary_search(long long k){
long long ans = 0;
long long p = (1LL << P);
while(p > 0){
if (ans + p > 0 && no_zero(ans + p) < k) ans += p;
p /= 2;
}
if (no_zero(ans + 1) == k) return ans + 1;
else return -1;
}
int main(){
long long p;
cin>>p;
cout<<binary_search(p)<<endl;
return 0;
}