Pagini recente » Cod sursa (job #214573) | Cod sursa (job #1205033) | Cod sursa (job #2796673) | Cod sursa (job #203409) | Cod sursa (job #2926402)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("indep.in");
ofstream fout ("indep.out");
const int MAX_N = 505;
const int MAX_V = 1005;
int n, m, v[MAX_N];
long long dp[MAX_N][MAX_V];
int main (){
ios_base::sync_with_stdio(false);
fin.tie(nullptr), fout.tie(nullptr);
fin>>n;
for(int i=1; i<=n; i++){
fin>>v[i];
m = max(m, v[i]);
dp[i][v[i]] = 1;
}
for(int i=1; i<=n; i++){
for(int j=i+1; j<=n+1; j++)
dp[j][v[i]] += 1;
for(int cmmdc=1, nxt_cmmdc; cmmdc<=m; cmmdc++)
if(dp[i][cmmdc] != 0){
nxt_cmmdc = __gcd(cmmdc, v[i]);
for(int j=i+1; j<=n+1; j++)
dp[j][nxt_cmmdc] += dp[i][cmmdc];
}
}
fout<<dp[n+1][1] / 2;
return 0;
}
/**
4
3 4 2 6
3 1 1
4 2
2
4
**/