Cod sursa(job #2386355)
Utilizator | Data | 22 martie 2019 17:10:56 | |
---|---|---|---|
Problema | Factorial | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <fstream>
#include <climits>
using namespace std;
ifstream fin ("cmmdc.in");
ofstream fout ("cmmdc.out");
long long st=1, dr=LLONG_MAX, mij, val, k=-1, p;
long long zero(long long n)
{
long long nr=0, x=5;
while(x<=n)
{
nr+=n/x;
x*=5;
}
return nr;
}
int main()
{
fin>>p;
if(p==0)
{
fout<<"1\n";
return 0;
}
while(st<=dr)
{
mij=(st+dr)/2;
val=zero(mij);
if(val==p)
{
k=mij;
dr=mij-1;
}
else if (val>p)dr=mij-1;
else st=mij+1;
}
fout<<k<<"\n";
return 0;
}