Pagini recente » Cod sursa (job #1085275) | Cod sursa (job #2471035) | Cod sursa (job #973617) | Cod sursa (job #1907409) | Cod sursa (job #768063)
Cod sursa(job #768063)
#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;
if(k<p)
{
a=j;
i=0;
a+=l;
k=nr_zero(a);
}
else
{
b=j;
b+=l;
k=nr_zero(b);
i=1;
}
//printf("%d %d %d %d\n",a,b,k,p); getch();
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,i,v[1001];
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
// for(i=0;i<=1000;i++)
//{
scanf("%d", &p);
if(p==0)
rez=1;
else
rez=cautare_binara(p);
//v[i]=rez;}
//for(i=0;i<=1000;i++)
printf("%d\n", rez);
return 0;
}