Pagini recente » Cod sursa (job #571093) | Cod sursa (job #2388007) | Cod sursa (job #2519033) | Cod sursa (job #2217051) | Cod sursa (job #3259771)
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *r, *w;
r = fopen("fact.in", "r");
w = fopen("fact.out", "w");
int p;
fscanf(r, "%d%d", &p);
if(p == 0){
fprintf(w, "1");
return 0;
}
//picked dr as of having 10^8 zeros for dr!
int st = 1, dr = 400000015, m, pow_5, power;
while(st <= dr){
m = (st + dr)/2;
pow_5 = 0;
power = 5;
while(m >= power){
pow_5 += m/power;
power *= 5;
}
if(pow_5 == p){
fprintf(w, "%d", m - m%5);
return 0;
} else if (pow_5 > p){
dr = m - 1;
} else {
st = m + 1;
}
}
fprintf(w, "-1");
return 0;
}