Pagini recente » Cod sursa (job #3260485) | Cod sursa (job #793518)
Cod sursa(job #793518)
#include <stdio.h>
int f(int x)
{
if (x < 5)
return 0;
int i = 0, putere=0, copie_i;
do
{
i += 5;
copie_i = i;
while(copie_i > 0 && copie_i % 5 == 0)
{
copie_i /= 5;
++putere;
}
}while(i + 5 <= x);
return putere;
}
int bin_search(int left, int right, int P)
{
if(right - left <= 1)
return right;
int middle = (left + right) / 2;
// printf("%d %d %d\nf(%d) = %d\n", left, middle, right, middle, f(middle));
if ( f (middle) >= P)
return bin_search(left, middle, P);
else
return bin_search(middle, right, P);
}
int main()
{
FILE *f = fopen("fact.in", "r");
int P;
fscanf(f, "%d", &P);
fclose(f);
f = fopen("fact.out", "w");
fprintf(f, "%d\n", bin_search(1, 100000000, P));
fclose(f);
return 0;
}