Pagini recente » Cod sursa (job #1085718) | Cod sursa (job #369469) | Cod sursa (job #1681953) | Cod sursa (job #907145) | Cod sursa (job #768069)
Cod sursa(job #768069)
#include <stdio.h>
#include <stdlib.h>
int nr_zero(int n)
{
int rez=0,k=5;
while(n>=k)
{
rez+=n/k;
k=k*5;
}
return rez;
}
int cautare_binara(int p)
{
int i=1,l,j,rez,k,a=4*p,b=5*p;
k=nr_zero(b);
while(k!=p)
{
l=0;
j=(a+b)/2;
if(((a+b)%2)!=0) l=1;
k=nr_zero(((a+b)/2)+l);
if(k<p)
{
a=j;
i=0;
}
else
{
b=j;
i=1;
}
if((b-a)==1)
return -1;
}
if(i==1)
rez=b;
else
rez=a;
rez=(rez/5)*5;
return rez;
}
int main()
{
int p,rez;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d", &p);
if(p==0)
rez=1;
else
rez=cautare_binara(p);
printf("%d\n",rez);
return 0;
}