Cod sursa(job #1822880)
Utilizator | Data | 5 decembrie 2016 18:36:39 | |
---|---|---|---|
Problema | Factorial | Scor | 15 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
unsigned long long r,l,p,m,u;
int n(int a)
{
int i=5;
int k=0;
while(i<=a)
{
k=k+a/i;
i=i*5;
}
return k;
}
int main()
{
fin>>p;
if(p==0)
{
fout<<1;
return 0;
}
u=0;
l=1;
r=p*5;
while(l<=p)
{
m=l+(r-l)/2;
if(n(m)>=p)
r=m-1;
else
l=m+1;
if(n(m)==p)
u=1;
}
if(u)
fout<<l;
else
fout<<-1;
}