Cod sursa(job #1861695)
| Utilizator | Data | 29 ianuarie 2017 11:01:43 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <fstream>
using namespace std;
int FiveFactors(int x)
{
int five_pow = 5;
int factors = 0;
while (five_pow <= x) {
factors += x / five_pow;
five_pow *= 5;
}
return factors;
}
int main()
{
ifstream fin("fact.in");
ofstream fout("fact.out");
int n;
fin >> n;
int pow = (1 << 30);
int pos = 0;
while (pow > 0) {
if (FiveFactors(pos + pow) < n) {
pos += pow;
}
pow >>= 1;
}
fout << (FiveFactors(pos + 1) == n ? pos + 1 : -1) << "\n";
return 0;
}
