Cod sursa(job #2605997)

Utilizator DoozCristian Bacaoanu Dooz Data 26 aprilie 2020 17:18:53
Problema Factorial Scor 5
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>

int a[2000];
int counter;
void factorial(int n) {

	int i, x, temp, rest;
	a[0] = 1;
	counter = 1;
	rest = 0;

	for(x=2; x<=n; x++) {
		for(i=0; i<counter; i++) {
			temp = (x * a[i]) + rest;
			a[i] = temp % 10;
			rest = temp / 10;
		}

		while(rest > 0) {
			a[counter++] = rest % 10;
			rest /= 10;
		}
	}
}

int main()
{
	int n, i, p;
	int nrZero;
	FILE *fact_in;
	FILE *fact_output;

	fact_in = fopen("fact.in", "r");
	fscanf(fact_in, "%d", &p);
	fclose(fact_in);

	n = 2;
	do {
		nrZero = 0;
		factorial(n);

		for(i=0; i<p; i++) {
			if(a[i] == 0 && a[p] != 0) nrZero++;

			else {
				i = p;
				nrZero = 0;
			}
		}

		if(nrZero == p) {
			fact_output = fopen("fact.out", "w");
			fprintf(fact_output, "%d", n);
			fclose(fact_output);
			break;
		}

		n++;
	} while(n < 99999);

    return 0;
}