Pagini recente » Cod sursa (job #1619617) | Cod sursa (job #2922137) | Cod sursa (job #798171) | Cod sursa (job #2298842) | Cod sursa (job #2610413)
#include <iostream>
#include <fstream>
std::ifstream in("fact.in");
std::ofstream out("fact.out");
long nr(long val){
long nr = 5;
long h = 0;
while (val / nr){
h += (val / nr);
nr *= 5;
}
return h;
}
int main()
{
long val;
in >> val;
if (val == 0)
out << "1";
else {
long stanga = 1, dreapta = 10 * val;
long gasit = -1;
while (stanga < dreapta) {
long numar;
long actual = (stanga + dreapta) / 2;
numar = nr(actual);
if (numar == val) {
gasit = actual;
break;
} else if (numar > val)
dreapta = actual-1;
else
stanga = actual+1;
}
if (gasit > 0)
gasit = gasit - gasit%5;
out << gasit;
}
in.close();
out.close();
return 0;
}