Pagini recente » Cod sursa (job #892539) | Cod sursa (job #134013) | Cod sursa (job #2635193) | Cod sursa (job #511189) | Cod sursa (job #546268)
Cod sursa(job #546268)
#include<stdio.h>
const int N=1001;
int n,v[501],m,d;
long long a[501][N];
int cmmdc(int a,int b)
{
int r;
while(b!=0)
{
r=a%b;
a=b;
b=r;
}
return a;
}
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]);
}
a[1][0]=a[1][v[1]]=1;
for(i=2;i<=n;++i)
{
for(j=0;j<N;j++)
{
if(a[i-1][j]==0)
continue;
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]);
return 0;
}