Cod sursa(job #494615)

Utilizator Adela_BaciuAdela Baciu Adela_Baciu Data 22 octombrie 2010 12:20:11
Problema Indep Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<cstdio>
long long a[510][1010],v[510];
long long n;
long long cmmdc(int a, int b)
{
	int r;
	while(b)
	{
		r=a%b;
		a=b;
		b=r;
	}
	return a;
}
int main()
{
	long long  i,j,d;
	freopen("indep.in","r",stdin);
	freopen("indep.out","w",stdout);
	scanf("%lld",&n);
	for(i=1;i<=n;i++)
		scanf("%lld",&v[i]);
	a[1][v[1]]=1;
	for(i=2;i<=n;i++)
	{
		for(j=1;j<=1000;j++)
		{
			if(a[i-1][j]!=0)
			{
				d=cmmdc(j,v[i]);
				a[i][d]+=a[i-1][j];
			}
			a[i][j]+=a[i-1][j];
		}
		++a[i][v[i]];
	}
	printf("%lld",a[n][1]);
	return 0;
}