Pagini recente » Cod sursa (job #1031496) | Cod sursa (job #1727696) | Cod sursa (job #2204173) | Cod sursa (job #3214623) | Cod sursa (job #789905)
Cod sursa(job #789905)
#include <cstdio>
using namespace std;
FILE *f = fopen ("fact.in","r");
FILE *g = fopen ("fact.out","w");
int P;
int getValue(int val)
{
int rez = 0;
do {
val /= 5;
rez += val;
} while (val / 5 != 0);
return rez;
}
int bsearch(int lo, int hi)
{
int value, mid;
while (lo <= hi) {
mid = hi - (hi - lo) / 2;
value = getValue(mid);
if (value >= P)
hi = mid - 1;
else
lo = mid + 1;
}
value = getValue(mid);
if (value < P) {
mid++;
value = getValue(mid);
}
if (value == P)
return mid;
else
return -1;
}
int main()
{
int SOL;
fscanf (f, "%d", &P);
if (P == 0)
SOL = 1;
else if (P == 1)
SOL = 5;
else
SOL = bsearch(1, (1 << 31) - 1);
fprintf (g, "%d\n", SOL);
fclose(f);
fclose(g);
return 0;
}