Cod sursa(job #34675)

Utilizator damaDamaschin Mihai dama Data 21 martie 2007 10:19:23
Problema Indep Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <stdio.h>

int n, v[512];
long long sol;

int cmmdc(int, int);

int main()
{
	freopen("indep.in","r",stdin);
	freopen("indep.out","w",stdout);

	int i, j, p, k;
	long long temp;
	scanf("%d", &n);

	for(i = 1; i <= n; ++i)
		scanf("%d", &v[i]);

	for(i = 1; i <= n; ++i)
	{
		p = k = 0;
		for(j = i + 1; j <= n; ++j)
		{
			if(cmmdc(v[i], v[j]) > 1)
				++p;
			else
				++k;
		}
		temp = 1;
		temp <<= k;
		--temp;
		temp <<= p;
		sol += temp;
	}
	printf("%lld", sol);
	return 0;
}

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