Cod sursa(job #1443237)
| Utilizator | Data | 27 mai 2015 12:10:27 | |
|---|---|---|---|
| Problema | Factorial | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int P;
int nr5(int X)
{
int nr = 0;
while (X)
{
nr += X/5;
X /= 5;
}
return nr;
}
int Solve(int P)
{
int L,R,M;
R = 1 << 20;
L = 1;
while (L < R)
{
M = (L + R) / 2;
int nr = nr5(M);
if (nr < P) L = M+1; else R = M;
}
return (nr5(L) == P) ? L : (nr5(R) == P) ? R : -1;
}
int main()
{
fin >> P;
fout << Solve(P);
return 0;
}
