Pagini recente » Cod sursa (job #3184441) | Cod sursa (job #2932012) | Cod sursa (job #2925575) | Cod sursa (job #2897529) | Cod sursa (job #74431)
Cod sursa(job #74431)
#include <fstream>
using namespace std;
long long p, put[100], nrp = 0;
void citire() {
ifstream fin("fact.in");
fin >> p;
fin.close();
}
void gen_put() {
for(long p = 5; p <= 1220703125; p*=5)
put[nrp++] = p;
}
long long zero(long n) {
long long s = 0;
for (long long i = 0; i < nrp && n / put[i] > 0; i++)
s += n / put[i];
return s;
}
long long numar() {
if (!p)
return 1;
long long st = 1;
long long dr = 5 * p < 2000000000 ? 5 * p : 2000000000;
while (st <= dr) {
long long m = (st + dr) >> 1;
long long z = zero(m);
if (z == p) {
while (zero(m) == p)
m--;
return m + 1;
}
if (z < p)
st = m + 1;
else
dr = m - 1;
}
return -1;
}
int main() {
citire();
gen_put();
ofstream fout("fact.out");
fout<< numar();
fout.close();
}