Pagini recente » Cod sursa (job #3001506) | Cod sursa (job #1156816) | Cod sursa (job #1248476) | Cod sursa (job #95805) | Cod sursa (job #266041)
Cod sursa(job #266041)
#include<stdio.h>
#define NMAX 501
#define MMAX 1001
int y[NMAX][MMAX],x[NMAX],i,j,n,m,k,l,a,s;
int cmmdc(int a, int b)
{
while(a&&b)
{
if (a>b)
a%=b;
else
b%=a;
}
if (a)
return a;
else
return b;
}
int main()
{
freopen("indep.in","r",stdin);
freopen("indep.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++)
{
scanf("%d",&x[i]);
if (x[i]>s)
s=x[i];
}
y[1][x[1]]=1;
for (i=1;i<=n;i++)
for (j=1;j<=s;j++)
{
y[i+1][j]+=y[i][j];
if (y[i][j])
y[i+1][cmmdc(j,x[i+1])]+=y[i][j];
}
s=0;
for (i=1;i<=n;i++)
s+=y[i][1];
printf("%d\n",s);
return 0;
}