Pagini recente » Istoria paginii utilizator/tzibu | Cod sursa (job #2205324) | Monitorul de evaluare | Rating Manghiuc Andrei (AndreiMann) | Cod sursa (job #1904787)
#include <stdio.h>
const int nmax=500000000;
int nzero(int x)
{
int ans=0;
while (x > 0)
{
x/=5;
ans+=x;
}
return ans;
}
int bin_search(int n, int p)
{
int s,d,m,x,ans;
s=1;
d=n;
ans=-1;
while (s <= d)
{
m=s+(d-s)/2;
x=nzero(m);
if (p > x)
s=m+1;
else
{
if (x == p)
ans=m;
d=m-1;
}
}
return ans;
}
int main()
{
int p;
FILE *f;
f=fopen("fact.in","r");
fscanf(f,"%d",&p);
fclose(f);
f=fopen("fact.out","w");
if (p == 0)
fprintf(f,"1");
else
fprintf(f,"%d",bin_search(nmax,p));
fclose(f);
}