Mai intai trebuie sa te autentifici.
Cod sursa(job #1558860)
| Utilizator | Data | 29 decembrie 2015 18:08:04 | |
|---|---|---|---|
| Problema | Factorial | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <fstream>
#include <cstdio>
int getFiveFactors(int x) {
int count = 0;
for ( ; x % 5 == 0; ++count, x /= 5)
continue;
return count;
}
int factorial(int p) {
if (p == 0)
return 1;
int fiveMultipler = 0, fiveFactorCount = 0;
while (fiveFactorCount < p) {
++fiveMultipler;
fiveFactorCount += getFiveFactors(fiveMultipler) + 1;
}
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;
}
