Pagini recente » Cod sursa (job #1235282) | Cod sursa (job #2888367) | Cod sursa (job #1612065) | Cod sursa (job #1576126) | Cod sursa (job #549215)
Cod sursa(job #549215)
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int func(int n)
{
int k = (int)(log(n) / log(5));
int i = 1, q = 0, j = 1;
for(i = 1; i <= k; i++){
j *= 5;
q += n/j;
}
return q;
}
/*
int calc(int st, int dr, int P)
{
int mij = (st + dr)/ 2;
if(func(mij) - P)
return mij;
if(func(mij) < P)
return calc(st, mij, P);
return calc(st, mij + 1, P);
}
*/
int calc(int P)
{
int k = P * 5, aux, r;
k = (k / 5) * 4;
r = (k % 5);
k += (5 - r);
int q = func(k);
printf("%d\n", q);
if(P == 0)
return 1;
if(q == P)
return k;
k += 5;
while(q != P) {
aux = k;
while(aux % 5 == 0) {
q++;
aux /= 5;
}
if(q == P)
return k;
if(q > P)
return -1;
k += 5;
}
return k;
}
int main()
{
FILE *f = fopen("fact.in", "r");
FILE *g = fopen("fact.out", "w");
int P, i;
fscanf(f, "%d", &P);
// for(i = 0; i <= P; i++ )
fprintf(g, "%d", calc(P));
fclose(f);
fclose(g);
return 0;
}