Cod sursa(job #1223090)

Utilizator allexx2200Atanasiu Alexandru-Marian allexx2200 Data 25 august 2014 14:15:38
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>

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


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 ls;
		} 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);
	
	//printf("NZ(45)=%d\n", nr_zerouri(1000));
	//printf("p=%d\n\n", p);
	fprintf(out, "%d", cautare(p, 1, MAXIM));
	return 0;
}