Cod sursa(job #1014852)
| Utilizator | Data | 23 octombrie 2013 15:56:02 | |
|---|---|---|---|
| Problema | Indep | Scor | 5 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.62 kb |
#include<stdio.h>
#define NMAX 507
int n, a[NMAX], D[NMAX][NMAX * 2];
inline int cmmdc(int a, int b){
if(!b)
return a;
return cmmdc(b, a % b);
}
int main(){
freopen("indep.in", "r", stdin);
freopen("indep.out", "w", stdout);
scanf("%d", &n);
for(int i = 1; i <= n; ++ i)
scanf("%d", &a[i]);
for(int i = 1; i <= n; ++ i)
D[i][a[i]] = 1;
for(int i = 1; i <= n; ++ i)
for(int j = 1; j <= 1000; ++ j){
D[i + 1][j] += D[i][j];
D[i + 1][cmmdc(j, a[i])] += D[i][j];
}
printf("%d", D[n][1]);
return 0;
}
