Pagini recente » Cod sursa (job #396775) | Cod sursa (job #731866) | Cod sursa (job #2006958) | Cod sursa (job #1685477) | Cod sursa (job #133335)
Cod sursa(job #133335)
#include<stdio.h>
int main()
{
unsigned long z,x1,x2,fx1,fx2,a,m,fm,c;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lu",&z);
if(z==0)
printf("1\n");
else
{
x1=5;
fx1=1;
x2=400000015;
fx2=100000000;
while(x1<x2)
{
m=(x1+x2)/2;
fm=0;
a=5;
while(a<=m)
{
fm=fm+m/a;
a=a*5;
}
if(z<=fm)
{
x2=m;
fx2=fm;
}
else
{
x1=m+1;
a=x1;
c=0;
while(a%5==0)
{
c++;
a=a/5;
}
fx1=fm+c;
}
}
x1=x1-x1%5;
fx1=0;
a=5;
while(a<=x1)
{
fx1=fx1+x1/a;
a=a*5;
}
if(fx1==z)
printf("%lu\n",x1);
else
printf("-1\n");
}
return 0;
}