Cod sursa(job #1556959)
| Utilizator | Data | 26 decembrie 2015 14:59:18 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.81 kb |
#include <cstdio>
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int p,ls,ld,mij,kk,k,fct;
int main()
{
f >> p;
ls = 1;
ld = 800000000;
kk = 0;
if(p == 0)
g << 1 << '\n';
else
{
while(ls <= ld && kk == 0)
{
k = 0;
mij = (ls + ld) / 2;
fct = 5;
while(fct <= mij)
{
k += mij / fct;
fct *= 5;
}
if(k == p)
kk = mij;
if(k > p)
ld = mij - 1;
else
if(k < p)
ls = mij + 1;
}
if(kk != 0)
g << kk - kk % 5 << '\n';
else
g << -1 << '\n';
}
return 0;
}
