Pagini recente » Cod sursa (job #606728) | Cod sursa (job #2269813) | Cod sursa (job #2122719) | Cod sursa (job #255517) | Cod sursa (job #6531)
Cod sursa(job #6531)
#include<stdio.h>
const int maxn = 1010;
long long j;
long long mat[maxn][maxn];
long long a[maxn];
long long i;
long long n;
long long cmmdc(long long a, long long b)
{
while (a)
{
long long aux=a;
a=b%a;
b=aux;
}
return b;
}
int main()
{
freopen("indep.in","r",stdin);
freopen("indep.out","w",stdout);
scanf("%lld",&n);
for(i=1;i<=n;i++)
{
long long x;
scanf("%lld",&a[i]);
mat[i][a[i]]=1;
}
long long x;
for(i=2;i<=n;i++)
{
for(j=1;j<=1000;j++)
mat[i][j]+=mat[i-1][j];
for(j=1000;j>0;j--)
if (mat[i-1][j]!=0)
{
x=cmmdc(j,a[i]);
mat[i][x]+=mat[i-1][j];
}
}
printf("%lld\n",mat[n][1]);
return 0;
}