Cod sursa(job #109866)

Utilizator IgnitionMihai Moraru Ignition Data 25 noiembrie 2007 12:51:31
Problema Pairs Scor 20
Compilator c Status done
Runda preONI 2008, Runda 1, Clasele 11-12 Marime 0.59 kb
#include <stdio.h>

#define MN (100009)

inline int gcd(int a, int b)
{
	int t;
	while(b) {
		t = b;
		b = a%b;
		a = t;
	}
	return a;
}

int main()
{
	freopen("pairs.in", "r", stdin);
	freopen("pairs.out", "w", stdout);
	
	int N, n[MN], i, j, odd = 0, even = 0, R = 0;
	
	scanf("%d", &N);
	for(i = 0; i < N; ++i) {
		scanf("%d", &j);
		if(j%2)
			n[N-(++odd)] = j;
		else n[even++] = j;
	}

	for(i = 0; i < even; ++i) for(j = N-odd; j < N; ++j) if(gcd(n[i], n[j]) == 1)
		++R;
	for(i = N-odd; i < N-1; ++i) for(j = i+1; j < N; ++j) if(gcd(n[i], n[j]) == 1)
		++R;

	printf("%d\n", R);

	return 0;
}