Pagini recente » Cod sursa (job #339707) | Cod sursa (job #2297370) | Cod sursa (job #271583) | Cod sursa (job #1551423) | Cod sursa (job #1558516)
#include <fstream>
#include <cstdio>
int factorial(int p) {
int powerOfFive = 5, fiveMultipler = 0,
fiveFactorCount = 0, logarithmBaseFive = 1;
while (fiveFactorCount < p) {
++fiveMultipler;
if (fiveMultipler == powerOfFive) {
powerOfFive *= 5;
++logarithmBaseFive;
fiveFactorCount += logarithmBaseFive;
}
else
++fiveFactorCount;
}
if (fiveFactorCount == p)
return fiveMultipler * 5;
return -1;
}
int main() {
char const * const inputFile = "fact.in",
* const outputFile = "fact.out";
std::ifstream in(inputFile);
std::ofstream out(outputFile);
int p = 0;
while (in >> p)
out << factorial(p) << std::endl;
return 0;
}