Pagini recente » Cod sursa (job #84853) | Clasament pregatire__1 | Cod sursa (job #2002396) | Profil Dragan_Dragos_Andrei_321CB | Cod sursa (job #768047)
Cod sursa(job #768047)
#include <stdio.h>
#include <stdlib.h>
int nr_zero(int n)
{
int rez=0,k=5;
while(k<=n)
{
rez+=n/k;
k=k*5;
}
return rez;
}
int cautare_binara(int p)
{
int i=1,rez,k,a=4*p,b=5*p;
k=nr_zero(b);
while(k!=p)
{
if(k<p)
{
a=(a+b)/2; i=0;
k=nr_zero(a);
}
else
{
b=(a+b)/2;
k=nr_zero(b);
i=1;
}
if((b-a)==1)
return -1;
}
if(i==1)
rez=div_5(b);
else
rez=div_5(a);
return rez;
}
int div_5(int n)
{
while((n%5)!=0)
n--;
return n;
}
int main()
{
int p,rez;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d", &p);
rez=cautare_binara(p);
printf("%d", rez);
return 0;
}