Cod sursa(job #2406429)
| Utilizator | Data | 15 aprilie 2019 19:01:35 | |
|---|---|---|---|
| Problema | Factorial | Scor | 20 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.69 kb |
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int n,nrmax,i,d,k;
unordered_map <int,int> ciur;
int main()
{
f >> n;
if(n == 0)
{
g << 1;
return 0;
}
nrmax = n * 5;
for(i = 5; i <= nrmax; i *= 5)
{
++ k;
d = 1;
while(d * i <= nrmax)
{
ciur[d * i] = k;
++ d;
}
}
for(i = 5; i <= nrmax; i += 5)
{
ciur[i] += ciur[i - 5];
if(ciur[i] == n)
{
g << i;
return 0;
}
if(ciur[i] > n)
break;
}
g << -1;
}
