Pagini recente » Cod sursa (job #1480703) | Cod sursa (job #3224453) | Cod sursa (job #1735360) | Cod sursa (job #1828857) | Cod sursa (job #2707995)
#include <cstdio>
#define DIM (int) 1e4
using namespace std;
long long n, st, dr, min_fact = (int) 2e9, poz = DIM - 1, mij, gasit;
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 && gasit == 0){
mij = (st + dr) / 2;
if(nr_0(mij) == n){
gasit = 1;
}
else if(nr_0(mij) > n){
dr = mij - 1;
}
else{
st = mij + 1;
}
}
if(gasit){
while(nr_0(mij) == n){
mij--;
}
printf("%d", mij + 1);
}
else{
printf("%d", -1);
}
return 0;
}