Pagini recente » Cod sursa (job #1689336) | Cod sursa (job #579526) | Cod sursa (job #2586327) | Cod sursa (job #2987593) | Cod sursa (job #1118762)
#include <stdio.h>
/*ifstream in ("indep.in");
ofstream out ("indep.out");*/
int const M=1000;
int const N=501;
int v[N];
long long mat[M][M];
int cmmdc(int x,int y)
{
int z;
while(y!=0)
{
z=x%y;
x=y;
y=z;
}
return x;
}
int main()
{
int i,j,n;
freopen("indep.in","r",stdin);
freopen("indep.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
mat[1][v[1]]=1;
for(i=2;i<=n;i++)
{
for(j=1;j<=M;j++)
mat[i][cmmdc(j,v[i])] += mat[i-1][j];
for(j=1;j<=M;j++)
mat[i][j] += mat[i-1][j];
}
/*for(i=1;i<=n;i++)
{
for(j=1;j<=50;j++)
printf("%d ",mat[i][j]);
printf("\n");
}*/
printf("%lld",mat[n][1]);
return 0;
}