Pagini recente » Cod sursa (job #2262088) | Cod sursa (job #504934) | Cod sursa (job #306810) | Cod sursa (job #1654111) | Cod sursa (job #830691)
Cod sursa(job #830691)
#include<fstream>
#define LL long long
using namespace std;
LL Nmax;
ifstream f("fact.in"); ofstream g("fact.out");
int p,q;
LL p5[50];
inline LL ff(LL n)
{ LL nr = 0;
int i = 1;
while(p5[i] <= n)
{ nr = nr + n / p5[i];
++i;
}
return nr;
}
int cauta()
{ LL s = 1, d = p5[q], m,v;
while(s <= d)
{ m= (s + d)>>1;
v = ff(m);
if(p == v) { m = m - (m % 5); return m;}
else
{ if(p < v) d = m - 1;
else
s = m + 1;
}
}
return -1;
}
int main()
{ Nmax = (1<<31);
Nmax *= Nmax;
f>>p;
p5[0] = 1;
for(q = 1; p5[q - 1] < Nmax; ++q)
p5[q] = p5[q -1] * 5;
q--;
if(!p) g<<1<<'\n';
else
{
int val = cauta();
g<<val<<'\n';
}
return 0;
}