Cod sursa(job #780582)

Utilizator aranhilChivu Stefan Iulian aranhil Data 20 august 2012 20:17:33
Problema Factorial Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
#include<math.h>

int main() {
	FILE *f = fopen("fact.in", "r");
	FILE *g = fopen("fact.out", "w");
	
	unsigned vec[12], p, nr0 = 0;
	
	fscanf(f, "%u", &p);
	
	if(p == 0) {
		fprintf(g, "-1");
		fclose(g);
		return 0;
	}
	
	for(int i = 0; i < 12; i++)
		vec[i] = 0;
	while(nr0 < p) {
		int max = 0, i = 0;
		while(vec[i] + 1 == 5) {
			vec[i] = 0;
			i++;
			max = i;
		}
		vec[i]++;
		nr0 += max + 1;
	}
	
	long rez = 0;
	if(nr0 == p)
		for(int i = 0; i < 12; i++) {
				if(vec[i] > 0) rez += vec[i] * pow(5, i + 1);
		}
	else rez = -1;
	
	fprintf(g, "%ld", rez);
	
	fclose(f);
	fclose(g);
	
	return 0;
}