Pagini recente » Cod sursa (job #2624769) | Cod sursa (job #372418) | Cod sursa (job #202172) | Cod sursa (job #2400016) | Cod sursa (job #235097)
Cod sursa(job #235097)
#include <stdio.h>
FILE *f,*g;
const p5[15]={0, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125};
long p,i,k,j,m,ok;
long nr0(long x)
{
long k,i;
k=0;
i=1;
while (x/p5[i]>=1 && i<=13)
{
k+=x/p5[i];
i++;
}
return k;
}
int main()
{
freopen("fact.in","r", stdin);
freopen("fact.out","w", stdout);
scanf("%ld", &p);
if (!p)
printf("1");
else
{
ok=0;
i=p;
j=2000000000;
while (!ok && i<=j)
{
m=(i+j)/2;
k=nr0(m);
if (k==p)
{
while (nr0(m)==k)
m--;
printf("%ld", m+1);
ok=1;
}
else if (k>p) j=m-1;
else i=m+1;
}
if (i>j) printf("-1");
}
return 0;
}