Pagini recente » Cod sursa (job #1939239) | Cod sursa (job #1243333) | Cod sursa (job #2787573) | Autentificare | Cod sursa (job #2952221)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("indep.in");
ofstream fout("indep.out");
int n, v[505], x[505];
unsigned long long int cnt;
int gcd(int a, int b) {
while(b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
bool valid(int k) {
if(k == 1) {
return false;
}
int cmmdc = gcd(v[x[1]], v[x[2]]);
for(int i = 3; i <= k; i++) {
cmmdc = gcd(cmmdc, v[x[k]]);
}
return (cmmdc == 1);
}
void back(int k) {
for(int i = x[k - 1] + 1; i <= n; i++) {
x[k] = i;
if(valid(k)) {
cnt++;
}
if(k < n) {
back(k + 1);
}
}
}
int main() {
fin >> n;
for(int i = 1; i <= n; i++) {
fin >> v[i];
}
sort(v + 1, v + n + 1);
back(1);
fout << cnt;
return 0;
}