Pagini recente » Cod sursa (job #1172237) | Cod sursa (job #337328) | Cod sursa (job #2023750) | Cod sursa (job #1839755) | Cod sursa (job #1681264)
#include <cstdio>
#define MAXN 500
#define MAXNR 1000
long long d[MAXN+1][MAXNR+1];
int mat[MAXNR+1][MAXNR+1];
inline int cmmdc(int a,int b){
int r;
while(b>0){
r=a%b;
a=b;
b=r;
}
return a;
}
int main(){
FILE*fi,*fout;
int i,n,nr,j,x;
fi=fopen("indep.in" ,"r");
fout=fopen("indep.out" ,"w");
fscanf(fi,"%d" ,&n);
for(i=1;i<=MAXNR;i++)
for(j=1;j<=MAXNR;j++)
mat[i][j]=cmmdc(i,j);
for(i=1;i<=n;i++){
fscanf(fi,"%d" ,&nr);
d[i][nr]=1;
for(x=1;x<=MAXNR;x++)
d[i][mat[nr][x]]+=d[i-1][x];
for(x=1;x<=MAXNR;x++)
d[i][x]+=d[i-1][x];
}
fprintf(fout,"%lld" ,d[n][1]);
fclose(fi);
fclose(fout);
return 0;
}