Pagini recente » Cod sursa (job #1347178) | Cod sursa (job #1650370) | Cod sursa (job #2646848) | Cod sursa (job #2875131) | Cod sursa (job #2914530)
#include <fstream>
using namespace std;
long zeroes(long n) {
long count = 0;
for(long f = 5 ; f <= n ; f *= 5)
count += n / f;
return count;
}
long findN(int p) {
long v[10] = {1, 5, 10, 15, 20, -1, 25, 30, 35, 40};
if (p < 10)
return v[p];
long lo = 0;
long hi = 5 * p;
while (lo < hi) {
long mid = (lo + hi) >> 1;
if (zeroes(mid) >= p)
hi = mid;
else
lo = mid + 1;
}
if (zeroes(lo) != p)
return -1;
return lo;
}
int main() {
ifstream fin("fact.in");
ofstream fout("fact.out");
int p;
fin>>p;
fout<<findN(p);
return 0;
}