Pagini recente » Cod sursa (job #3031651) | Cod sursa (job #778704) | Cod sursa (job #450670) | Cod sursa (job #526689) | Cod sursa (job #1928575)
#include<cstdio>
using namespace std;
int p;
FILE* in = fopen("fact.in", "r");
FILE* out = fopen("fact.out", "w");
int mc(int a)
{
int m = a / 5;
int x = 5;
int s = m;
while(m)
{
x *= 5;
m = a / x;
s += m;
}
return s;
}
int cautbin(int a)
{
int start = 0, step = 1;
for(; step <= p * 5; step <<= 1)
{
}
for(; step; step >>= 1)
{
int index = start + step;
if(p < mc(index)) continue;
if(mc(index) <= a) start = index;
}
if(mc(start) != a) return -1;
else return start;
}
int main()
{
fscanf(in, "%d", &p);
int v = cautbin(p);
if(v != -1) if(v % 5 != 0) v -= (v % 5);
if(p == 0) v = 1;
fprintf(out, "%d", v);
}