Pagini recente » Cod sursa (job #2840114) | Cod sursa (job #1155851) | Cod sursa (job #374650) | Cod sursa (job #1433151) | Cod sursa (job #202537)
Cod sursa(job #202537)
#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-=2;
if (zerouri(rasp+1)==cate) printf("%ld",rasp+1);
else
if (zerouri(rasp+2)==cate) printf("%ld",rasp+2);
// printf("%ld",zerouri(p));
fclose(stdout);
freopen("fact.cpp","a",stdout);
printf("// %ld",p);
return 0;
}