Cod sursa(job #325524)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 20 iunie 2009 23:59:02
Problema Indep Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <cstdio>

#define file_in "indep.in"
#define file_out "indep.out"

int v[1010];
int n,Cnt[1010][1010];

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

int main()
{
	int i,j;
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d", &n);
	for (i=1;i<=n;++i)
		 scanf("%d", &v[i]);
	
    Cnt[1][v[1]]=1;
	for (i=1;i<n;++i)
	{
		Cnt[i+1][v[i+1]]++;
		for (j=1;j<=1000;++j)
		{
			Cnt[i+1][j]+=Cnt[i][j];
	        Cnt[i+1][cmmdc(j,v[i+1])]+=Cnt[i][j]; 
		}
	}

	printf("%d", Cnt[n][1]);
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
}