Cod sursa(job #2287580)
| Utilizator | Data | 22 noiembrie 2018 05:04:37 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.82 kb |
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream gout("fact.out");
int main()
{
int mijloc, inceput=5, sfarsit=400000015, n, m, p5, num=-1;
bool exit=false;
fin >> n;
if (n)
{
while (inceput <= sfarsit && !exit)
{
m=0;
p5=5;
mijloc = (inceput+sfarsit)/2;
while (mijloc/p5 > 0)
{
m+= mijloc/p5;
p5*=5;
}
if (m==n)
{
num = mijloc;
exit=true;
}
if (m > n)
sfarsit = mijloc-1;
else
inceput = mijloc+1;
}
exit ? num-=num%5 : num=-1;
}
else
num = 1;
gout << num;
return 0;
}
