Pagini recente » Cod sursa (job #2127909) | Cod sursa (job #727987) | Cod sursa (job #2373473) | Cod sursa (job #498794) | Cod sursa (job #614303)
Cod sursa(job #614303)
#include <stdio.h>
using namespace std;
int calc(int h);
int binary(int p);
unsigned long p;
int main()
{
FILE * f;
f = fopen ("factorial.in","r");
fscanf (f,"%u", &p);
fclose (f);
f = fopen ("factorial.out","w");
unsigned long sum = binary(p/2);
if (!p)
fprintf (f, "%s", "1");
else if ( sum==0)
fprintf (f, "%s", "-1");
else fprintf (f, "%u", sum*5);
fclose (f);
return 0;
}
int calc(int h)
{
unsigned long sum = h;
while (h>4)
{
sum = sum + h/5;
h = h/5;
}
return sum;
}
int binary(int n)
{
unsigned long q = calc(n);
if (q == p)
return n;
else if (q > p )
return 0;
else if (q < p )
return binary( (n+p)/2 );
}