Pagini recente » Cod sursa (job #816348) | Cod sursa (job #2808470) | Cod sursa (job #3193648) | Cod sursa (job #3270413) | Cod sursa (job #2949219)
#include <fstream>
using namespace std;
ifstream fin ("fact.in");
ofstream fout ("fact.out");
int p;
int legendre(long long n,int k)
{
int s=0;
long long numitor=k;
while(n>=numitor)
{
s=s+n/numitor;
numitor=numitor*k;
}
return s;
}
int ok(long long nr)
{
int z;
z=legendre(nr,5);
return z;
}
long long bsL(long long st,long long dr)
{
long long med,last=-1;
int found=0,zerouri;
while(st<=dr)
{
med=(st+dr)>>1;
zerouri=ok(med);
if(zerouri==p)
{
found=1;
last=med;
dr=med-1;
}
else
if(zerouri>p)
{
last=med;
dr=med-1;
}
else
st=med+1;
}
if(found==0)
return -1;
return last;
}
int main()
{
int sol;
fin>>p;
long long dr=(1LL<<62);
sol=bsL(1,dr);
fout<<sol;
}