Cod sursa(job #42512)

Utilizator plastikDan George Filimon plastik Data 29 martie 2007 11:39:28
Problema Indep Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <cstdio>

const int MAX_N = 505;
int N;
int A[MAX_N], C[MAX_N];

int cmmdc(int a, int b) {
	if (b == 0)
		return a;
	return cmmdc(b, a % b);
}

int main(void) {
	FILE *in = fopen("indep.in", "r");
	fscanf(in, "%d", &N);
	int i;
	for (i = 0; i < N; ++ i)
		fscanf(in, "%d", &A[i]);
	fclose(in);
	
	//printf("%d\n", cmmdc(3, 4));

	C[0] = 0;
	int j;
	for (i = 1; i < N; ++ i) {
		C[i] = 0;
		for (j = 0; j < i; ++ j)
			if (C[j] == 0 && cmmdc(A[i], A[j]) == 1)
				C[i] ++;
			else
				C[i] += C[j];
	}

	FILE *out = fopen("indep.out", "w");
	int sum = 0;
	for (i = 1; i < N; ++ i)
		sum += C[i];
	fprintf(out, "%d\n", sum);
	fclose(out);
		
	return 0;
}