Pagini recente » Cod sursa (job #2899308) | Cod sursa (job #2843502) | Cod sursa (job #2465436)
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
using namespace std;
ifstream fin("indep.in");
ofstream fout("indep.out");
int gcd(int a, int b){
if(a == 0){
return b;
}
return gcd(b%a, a);
}
int n;
vector<int> num;
int sol = 0;
vector<int> pa;
void susta(int p = 0, bool dank = true){
if(pa.size() >= 2 && dank){
// for(auto a : pa){
// cout << num[a] << " ";
// }
// cout << "\n";
sol++;
}
if(p < n){
int fml = num[p];
for(int i = 0; i < pa.size(); i++){
fml = gcd(fml, num[pa[i]]);
}
if(pa.size() == 0 || fml == 1){
pa.push_back(p);
susta(p+1, true);
pa.pop_back();
}
susta(p+1, false);
}
}
int main(){
int a;
fin >> n;
for(int i = 0; i < n; i++){
fin >> a;
num.push_back(a);
}
susta();
fout << sol;
return 0;
}