Pagini recente » Istoria paginii runda/oji-2015-cls11-12/clasament | Cod sursa (job #2620145) | Cod sursa (job #962043) | Istoria paginii runda/9_3/clasament | Cod sursa (job #257068)
Cod sursa(job #257068)
#include <stdio.h>
int N,a[505],VMAX;
long long nr[2][1001];
int cmmdc(int a,int b){
return b==0?a:cmmdc(b,a%b);
}
int main(){
int i,j,k,now=1,prev;
freopen("indep.in","r",stdin);
freopen("indep.out","w",stdout);
scanf("%d",&N);
for (i=1;i<=N;++i) {scanf("%d",&a[i]);
VMAX=VMAX<a[i]?a[i]:VMAX;}
nr[1][a[1]]=1;
for (i=2;i<=N;++i){
now=i&1;prev=1-now;
for (j=1;j<=VMAX;++j){
nr[now][j]=nr[prev][j];
for (k=1;k<=VMAX;++k)
if (cmmdc(k,a[i])==j)
nr[now][j]+=nr[prev][k];
}
}
printf("%lld",nr[now][1]);
return 0;
}