Pagini recente » Cod sursa (job #2719979) | Diferente pentru documentatie/textile intre reviziile 34 si 35 | Cod sursa (job #2402279) | Clasament dupa rating | Cod sursa (job #3223208)
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int p, n = -1;
long long exponent(int k){
long long exp2 = 0, exp5 = 0;
int val = k;
int x = 5;
while(x <= val){
exp5 += val / x * 1ll;
x *= 5;
}
return exp5;
}
int main(){
ios::sync_with_stdio(0);
f.tie(0);
f >> p;
int st = 1, dr = 2000000000;
while(st <= dr){
int m = (st + dr) / 2;
long long exp = exponent(m);
// g << m << ' ' << exp << '\n';
if(exp == p){
n = m;
dr = m - 1;
}
else if(exp < p){
st = m + 1;
}
else if(exp > p){
dr = m - 1;
}
}
g << n << '\n';
}