Pagini recente » Cod sursa (job #2515538) | Cod sursa (job #1763006) | Cod sursa (job #581333) | Cod sursa (job #1901527) | Cod sursa (job #247912)
Cod sursa(job #247912)
#include <stdio.h>
const long long v[12]={5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625};
int p;
int pt(long long x)
{
int nr=0,i;
i=0;
while (x/v[i]>0)
{
nr=nr+x/v[i];
i++;
}
return nr;
}
long long binar(long long x)
{
long long a=0,b=400000015,c;
while (a<b)
{
c=(a+b)/2;
if (pt(c)>=p)
b=c;
if (pt(c)<p)
a=c+1;
}
if (pt(a)==x)
return a;
return -1;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lld",&p);
if (p==0)
printf("1");
if (p==5)
printf("-1");
if ((p!=0)&&(p!=5))
printf("%lld",binar(p));
}