Pagini recente » Cod sursa (job #2710546) | Cod sursa (job #1938153) | Cod sursa (job #18219) | Cod sursa (job #825575) | Cod sursa (job #2707964)
#include <cstdio>
#define DIM (int) 1e4
using namespace std;
long long n, st, dr, min_fact = (int) 2e9, poz = DIM - 1, mij;
char buff[DIM];
void read(long long &nr){
nr = 0;
while(!('0' <= buff[poz] && buff[poz] <= '9')){
if(++poz == DIM) fread(buff, 1, DIM, stdin), poz = 0;
}
while(('0' <= buff[poz] && buff[poz] <= '9')){
nr = nr * 10 + buff[poz] - '0';
if(++poz == DIM) fread(buff, 1, DIM, stdin), poz = 0;
}
}
long long nr_0(long long n){
long long p = 5, ans = 0;
while(p <= n){
ans += n / p;
p *= 5;
}
return ans;
}
int main(){
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
read(n);
st = 1, dr = (int) 2e11;
if(!n){
printf("%d", 1);
}
while(st <= dr){
mij = (st + dr) / 2;
if(nr_0(mij) == n){
if(mij < min_fact){
min_fact = mij;
}
dr = mij - 1;
}
else if(nr_0(mij) > n){
dr = mij - 1;
}
else{
st = mij + 1;
}
}
if(min_fact < (int) 2e9){
printf("%d", min_fact);
}
else{
printf("%d", -1);
}
return 0;
}