Pagini recente » Cod sursa (job #1942752) | Cod sursa (job #624716) | Cod sursa (job #2092349) | Cod sursa (job #2780805) | Cod sursa (job #411018)
Cod sursa(job #411018)
#include<stdio.h>
int d[501][1001];
int n,v[501],maxim;
int cmmdc(int a,int b)
{
int r;
while(a%b)
{
r=a%b;
a=b;
b=r;
}
return b;
}
int main ()
{
int i,j;
freopen("indep.in","r",stdin);
freopen("indep.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&v[i]);
if(v[i]>maxim)
maxim=v[i];
}
d[1][v[1]] = 1;
for(i=1;i<=n-1;i++)
{
for (j = 1; j <= maxim; ++j)
d[i+1][j] = 0;
d[i+1][v[i+1]] = 1;
for(j=1;j<=maxim;j++)
{
d[i+1][cmmdc(j,v[i+1])]+=d[i][j];
d[i+1][j]+=d[i][j];
}
}
printf("%d\n",d[n][1]);
return 0;
}