Cod sursa(job #546271)

Utilizator gramatovici_paulGramatovici Paul gramatovici_paul Data 4 martie 2011 18:33:46
Problema Indep Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<stdio.h>


const int N=1001;


long long n,v[501],a[N][N],d;

int cmmdc(int a,int b)
{
	int r;
	while (b!=0)
	{
		r=a%b;
		a=b;
		b=r;
	}
	return a;
}

int main()
{
	long long i,j;
	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][0]=a[1][v[1]]=1;
	for(i=2;i<=n;++i)
	{
		for(j=0;j<N;j++)
		{
			d=cmmdc(v[i],j);
			a[i][d]+=a[i-1][j];
		}
		for(j=0;j<N;j++)
			a[i][j]+=a[i-1][j];
	}
	printf("%lld",a[n][1]);
}