Pagini recente » Cod sursa (job #41664) | Cod sursa (job #588846) | Cod sursa (job #713674) | Cod sursa (job #340070) | Cod sursa (job #61614)
Cod sursa(job #61614)
#include <stdio.h>
#define fin "indep.in"
#define fout "indep.out"
#define Nmax 501
#define Dmax 1001
#define Cmax 51
int N;
long long ret,v[Nmax][Dmax];
int gcd(int a,int b) {
if (b==0)
return a;
else
return gcd(b,a%b);
}
void add(int A[],int B[]) {
int i,t=0;
for (i=1;i<=A[0] || i<=B[0] || t;++i) {
if (i>A[0])
A[i]=0;
if (i>B[0])
B[i]=0;
A[i]+=B[i]+t;
if (A[i]>9) {
t=1;
A[i]%=10;
}
else
t=0;
}
A[0]=i-1;
}
void print(int A[]) {
int i;
for (i=A[0];i>0;--i)
printf("%d",A[i]);
printf("\n");
}
int main() {
int i,j,k,x,tmp;
int aux[Cmax];
freopen(fin,"r",stdin); freopen(fout,"w",stdout);
scanf("%d",&N);
for (i=1;i<=N;++i) {
scanf("%d",&x);
for (j=1;j<Dmax;++j) {
tmp=gcd(j,x);
for (k=1;k<i;++k)
v[i][tmp]+=v[k][j];
}
v[i][x]++;
ret+=v[i][1];
}
printf("%lld\n",ret);
fclose(stdin); fclose(stdout);
return 0;
}