Pagini recente » Cod sursa (job #428574) | Cod sursa (job #2443811) | Cod sursa (job #80982) | Cod sursa (job #3266115) | Cod sursa (job #472125)
Cod sursa(job #472125)
#include<stdio.h>
int z_i_f(int N)
{
int result = 0;
while(N != 0)
{
result += N/5;
N /= 5;
}
return result;
}
int main()
{
FILE* f = fopen("fact.in", "r");
int p;
fscanf(f, "%d", &p);
if(p == 0)
return 1;
int i = 0;
int N = 0;
int l = 0;
int r = p * 10;
while(l < r)
{
int m = l + (r-l)/2;
int z = z_i_f(m);
printf("[m %d z %d l %d r %d p %d]\n", m, z, l, r, p);
if(z == p)
{
while(z_i_f(m) == p)
{
N = m;
m--;
}
break;
}
else if(z > p)
{
r = m;
}
else
{
l = m + 1;
}
}
fclose(f);
f = fopen("fact.out", "w");
fprintf(f, "%d", N);
fclose(f);
return 0;
}