Pagini recente » Cod sursa (job #882895) | Cod sursa (job #1735406) | Cod sursa (job #2553084) | Cod sursa (job #1844587) | Cod sursa (job #630721)
Cod sursa(job #630721)
#include <stdio.h>
long cauta(long start, long stop);
long nrZero(long k);
long p, n;
int main()
{
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
scanf("%ld",&p);
n=cauta(0, p*5);
if (n>0)
n-=n%5;
if (n==0)
n++;
printf("%ld",n);
return 0;
}//main
long cauta(long start, long stop)
{
long mid, z;
while (start<=stop)
{
mid=start+((stop-start)/2);
z=nrZero(mid);
//printf("%ld %ld %ld %ld\n", start, mid, stop, z);
if (z==p)
return mid;
if (p<z)
stop=mid-1;
else
start=mid+1;
}//while
return -1;
}//cauta
long nrZero(long k)
{
long rez=0;
while ((k/5)>0)
{
rez+=k/5;
k/=5;
}//while
return rez;
}//nrZero