Cod sursa(job #494614)

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