Cod sursa(job #780645)

Utilizator aranhilChivu Stefan Iulian aranhil Data 20 august 2012 22:36:34
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<stdio.h>
#include<math.h>

long long nr0(long long x) {
	long long k = 5, nr = 0;
	while(x >= k) {
		nr += x / k;
		k *= 5;
	}
	return nr;
}

int main() {
	FILE *f = fopen("fact.in", "r");
	FILE *g = fopen("fact.out", "w");
	
	long long p;
	
	fscanf(f, "%lld", &p);
	
	if(p == 0) {
		fprintf(g, "1");
		fclose(g);
		return 0;
	}
	
	long long s = 0, d = 10000000000;
	while(s != d) {
		long long m = (s + d) / 2;
		if(p <= nr0(m)) {
			d = m;
		}
		else {
			s = m + 1;
		}
	}
	
	if(nr0(s) == p) fprintf(g, "%lld", s);
	else fprintf(g, "-1");
	
	fclose(f);
	fclose(g);
	
	return 0;
}