Pagini recente » Cod sursa (job #1962247) | Cod sursa (job #1855740) | Cod sursa (job #2069032) | Cod sursa (job #130897) | Cod sursa (job #2631694)
#include <bits/stdc++.h>
#define MAX 131072
#define MOD 10007
#define INF 2100000000
using namespace std;
const int NMAX = 505;
int N;
int v[NMAX];
long long dp[2][2 * NMAX];
inline int gcd(int x, int y){
if(!y)
return x;
return gcd(y, x % y);
}
int main(){
freopen("indep.in", "r", stdin);
freopen("indep.out", "w", stdout);
scanf("%d", &N);
for(int i = 1; i <= N; i++)
scanf("%d", &v[i]);
int curr = 1, last = 0;
for(int i = N; i > 0; --i){
dp[curr][v[i]]++;
for(int j = 1; j <= 1000; j++){
if(!dp[last][j]) continue;
dp[curr][j] += dp[last][j];
dp[curr][gcd(v[i], j)] += dp[last][j];
dp[last][j];
}
curr ^= 1;
last ^= 1;
}
printf("%lld", dp[last][1]);
return 0;
}