Cod sursa(job #2154740)
| Utilizator | Data | 7 martie 2018 11:36:26 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.81 kb |
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int n,q=500000000,p=1,m,ok=0,nr,pr;
int main()
{
f>>n;
if(n==0)
g<<1<<'\n';
else
{
while(p<q)
{
m=p+(q-p)/2;
nr=0;
pr=5;
while(pr<m)
nr=nr+m/pr, pr*=5;
if(nr==n)
p=m, q=m;
else if(nr<n)
p=m+1;
else
q=m-1;
}
m=p+(q-p)/2;
nr=0;
pr=5;
while(m/pr)
nr=nr+m/pr, pr*=5;
if(nr==n)
ok=m;
else if(nr<n)
p=m+1;
else
q=m-1;
if(ok<5)
g<<-1<<'\n';
else
g<<ok-ok%5;
}
return 0;
}
