Pagini recente » Cod sursa (job #995077) | Cod sursa (job #1197127) | Cod sursa (job #1446882) | Cod sursa (job #1496458) | Cod sursa (job #2944212)
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long P;
long long legendre(int k,long long n)
{
long long p,numitor;
p=0;
numitor=k;
while(n>=numitor)
{
p=p+n/numitor;
numitor=numitor*k;
}
return p;
}
int bs(int st,int dr)
{
long long med,last=-1,k;
int ok=0;
while(st<=dr)
{
med=st+(dr-st)/2;
k=legendre(5,med);
if(k==P)
{
ok=1;
last=med;
dr=med-1;
}
else
if(k>P)
{
last=med;
dr=med-1;
}
else
st=med+1;
}
if(ok==0)
return -1;
else
return last;
}
int main()
{
fin>>P;
long long lim;
int ans;
1LL<<63;
ans=bs(1,lim);
if(P==0)
fout<<1;
else
fout<<ans;
fin.close();
fout.close();
return 0;
}