Cod sursa(job #181456)

Utilizator razvi9Jurca Razvan razvi9 Data 18 aprilie 2008 13:00:20
Problema Indep Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<cstdio>
long long  n,a[501],s[2][1001],i,j,prev,now,x;
inline int cmmdc(int a,int b)
{
	int r;
	while(a!=0)
	{
		r=b%a;
		b=a;
		a=r;
	}
	return b;
}
int main()
{
	freopen("indep.in","r",stdin);
	freopen("indep.out","w",stdout);
	scanf("%lld",&n);
	for(i=1;i<=n;i++)
		scanf("%lld",&a[i]);
	now=0;
	s[now][a[1]]=1;
	for(i=2;i<=n;i++)
	{
		prev=now;
		now=!now;
		for(j=1;j<=6;j++)
		{
			s[now][j]=s[prev][j];
			x=cmmdc(a[i],j);
			s[now][x]+=s[prev][j];
		}
		s[now][a[i]]++;
	}
	printf("%lld\n",s[now][1]);
	fclose(stdout);
	return 0;
}