Pagini recente » Cod sursa (job #2070238) | Cod sursa (job #482827) | Cod sursa (job #951005) | Cod sursa (job #180766) | Cod sursa (job #202527)
Cod sursa(job #202527)
#include <stdio.h>
#include <values.h>
#include <math.h>
long zerouri(long n)
{
long zero=0;
int i;
for (i=1;i<=n;i++)
{
if (pow(5,i)<=n)
{
zero+=n/pow(5,i);
} else break;
}
return zero;
}
long p,rez=0;
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%ld",&p);
long st=0,dr=2000000000;
long m=0;
long rasp=0,cate=0,temp=0;
if (p!=0)
{
while (st<=dr)
{
m=(st+dr)/2;
temp=zerouri(m);
if (p==temp)
{
rasp=m;
cate=temp;
break;
}
if (p<temp)
{
dr=m-1;
} else st=m+1;
}
} else
{
printf("1");
return 0;
}
while (zerouri(rasp)==cate)
rasp-=4;
if (zerouri(rasp+1)==cate) printf("%ld",rasp+1);
else
if (zerouri(rasp+2)==cate) printf("%ld",rasp+2);
else
if (zerouri(rasp+3)==cate) printf("%ld",rasp+3);
// printf("%ld",zerouri(p));
return 0;
}