Pagini recente » Cod sursa (job #946335) | Cod sursa (job #2532547) | Cod sursa (job #2717404) | Cod sursa (job #2206384) | Cod sursa (job #1591977)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long pw5[15];
int nrZ(long long n) {
int r = 0;
int r2 = 1;
int i = 1;
while(r != r2) {
r2 = r;
r += n/pw5[i];
i++;
}
return r;
}
int bin(long nr, int st, int dr) {
int mid = (st+dr)/2;
int z = nrZ(mid);
if(st >= dr)
return -1;
if(nr > z)
return bin(nr, mid-1, dr);
if(nr < z)
return bin(nr, st, mid+1);
while(z == nrZ(mid))
mid--;
return mid+1;
}
int main() {
long a;
in >> a;
if(a == 0) {
out << 1;
return 0;
}
pw5[1] = 5;
for(int i = 2; i <= 14; i++)
pw5[i] = pw5[i-1]*5;
out << bin(a, 0, 20000000000);
return 0;
}