Pagini recente » Cod sursa (job #2595358) | Cod sursa (job #2125237) | Cod sursa (job #885492) | Cod sursa (job #2007822) | Cod sursa (job #615191)
Cod sursa(job #615191)
#include <fstream>
using namespace std;
int calc(unsigned long h);
int binary(unsigned long start, unsigned long end);
unsigned long p,no;
int main()
{
ifstream f ("fact.in");
ofstream g ("fact.out");
f>>p;
f.close ();
no = binary(1,calc(p))*5;
if (!no)
g<<"-1";
else g<<no;
g.close ();
return 0;
}
int calc(unsigned long h)
{
unsigned long sum = h;
while (h>4)
{
sum = sum + h/5;
h = h/5;
}
return sum;
}
int binary(unsigned long start, unsigned long end)
{
unsigned long k = (start + end)/2;
unsigned long q = calc(k);
if ( (start>end) )
return 0;
else
{
if (q == p)
return k;
else if (k > p) return binary(p,k-1);
else if (k < p) return binary(k+1,p);
else return 0;
}
}