Pagini recente » Cod sursa (job #2668548) | Cod sursa (job #1021691) | Cod sursa (job #1665153) | Cod sursa (job #556619) | Cod sursa (job #2376779)
#include <bits/stdc++.h>
using namespace std;
int main() {
ifstream cin("pairs.in");
ofstream cout("pairs.out");
int n, m; cin >> n; m = 1e6;
vector<int> v(m + 1, 0);
for (int i = 0; i < n; ++i) {
int x; cin >> x;
v[x] = 1;
}
vector<int> mu(m + 1, 1), prime(m + 1, 1);
for (int d = 2; d <= m; ++d) {
if (!prime[d]) continue;
for (int i = d; i <= m; i += d) {
if (i % (1LL * d * d) == 0)
mu[i] = 0;
prime[i] = 0;
mu[i] *= -1;
}
}
long long ans = 0;
for (int d = 1; d <= m; ++d) {
int cnt = 0;
for (int i = d; i <= m; i += d) {
cnt += v[i];
}
ans += 1LL * mu[d] * cnt * (cnt - 1) / 2;
}
cout << ans << endl;
return 0;
}