Pagini recente » Cod sursa (job #396611) | Cod sursa (job #3209527) | Borderou de evaluare (job #231641) | Cod sursa (job #4904) | Cod sursa (job #546267)
Cod sursa(job #546267)
#include<stdio.h>
const int N=1001;
long long n,v[501],a[N][N],d;
int cmmdc(int a,int b)
{
int r;
while (b!=0)
{
r=a%b;
a=b;
b=r;
}
return a;
}
int main()
{
long long i,j;
freopen("indep.in","r",stdin);
freopen("indep.out","w",stdout);
scanf("%lld",&n);
for(i=1;i<=n;++i)
scanf("%lld",&v[i]);
a[1][0]=a[1][v[1]]=1;
for(i=2;i<=n;++i)
{
for(j=0;j<=N;j++)
{
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]);
}