Cod sursa(job #1219276)

Utilizator allexx2200Atanasiu Alexandru-Marian allexx2200 Data 13 august 2014 21:17:29
Problema Factorial Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>

#define FIN "fact.in"
#define FOUT "fact.out"
#define MAXIM 100000000

int nr_zerouri(int n) {
	int rez;
	for(rez = 0; n / 5 ; rez+=n/5, n/=5){};
	return rez;
}

int cautare(int p, int li, int ls) {
	int t, rez;
	if(li == ls){
		if(nr_zerouri(ls) == p){
			return li;
		} else {
			return -1;
		}
	}
	t = (li + ls) / 2;
	if(nr_zerouri(t) >= p){
		rez = cautare(p, li, t);
	} else {
		rez = cautare(p, t+1, ls);
	}
	return rez;
}

int main() {
	int p;
	FILE *in, *out;
	in = fopen(FIN, "rt");
	out = fopen(FOUT, "wt");
	fscanf(in, "%d", &p);
	fprintf(out, "%d", cautare(p, 1, MAXIM));
	return 0;
}