Pagini recente » Cod sursa (job #323935) | Cod sursa (job #515852) | Cod sursa (job #831590) | Cod sursa (job #2036189) | Cod sursa (job #493742)
Cod sursa(job #493742)
#include <cstdio>
const int N = 512;
const int R = 1024;
int n;
long long a[N][R];
int cmmdc(int x,int y)
{
int r;
while(y != 0)
{
r = x%y;
x = y;
y = r;
}
return x;
}
int main()
{
freopen("indep.in","r",stdin);
freopen("indep.out","w",stdout);
int x,d;
scanf("%d",&n);
for(int i=1 ; i<=n ; ++i)
{
scanf("%d",&x);
++a[i][x];
for(int j=1 ; j<R ; ++j)
{
if(a[i-1][j] == 0)
continue;
d = cmmdc(j,x);
a[i][d] += a[i-1][j];
}
for(int j=1 ; j<R ; ++j)
a[i][j] += a[i-1][j];
}
printf("%lld\n",a[n][1]);
return 0;
}