Pagini recente » Cod sursa (job #1575489) | Cod sursa (job #3037744) | Cod sursa (job #1695101) | Cod sursa (job #171697) | Cod sursa (job #1773785)
#include <fstream>
#include <iostream>
using namespace std;
int a[510], x[1010], y[1010], b[1010];
int n, i, j, maxim, k, p, nr, e, sol;
int main () {
ifstream fin ("indep.in");
ofstream fout("indep.out");
fin>>n;
for (int i=1;i<=n; i++) {
fin>>a[i];
if (a[i] > maxim) {
maxim = a[i];
}
}
for (i=2;i<=maxim;i++) {
j = 2;
k = i;
int ok = 1;
nr = 0;
while (k!=1) {
e = 0;
while (k%j == 0) {
e++;
k/=j;
}
if (e>=2) {
ok = 0;
}
if (e == 1) {
nr++;
}
j++;
}
if (ok) {
x[++p] = i;
y[p] = nr;
}
}
/*
for (i=1;i<=p;i++)
cout<<x[i]<<" ";
*/
for (i=1;i<=p;i++) {
nr = 0;
for (j=1;j<=n;j++)
if (a[j]%x[i] == 0)
nr++;
if (y[i] % 2 == 1)
sol += ((1<<nr)-1);
else
sol -= ((1<<nr)-1);
}
fout<<(1<<n)-1-sol;
return 0;
}