Pagini recente » Cod sursa (job #2824427) | Cod sursa (job #1753529) | Cod sursa (job #1804485) | Cod sursa (job #2240279)
#include <bits/stdc++.h>
using namespace std;
int n;
int a[100005], f[1000005], prim[1000005];
int main()
{
freopen("pairs.in", "r", stdin);
freopen("pairs.out", "w", stdout);
scanf("%d", &n);
for(int i = 1; i <= n ; ++i){
scanf("%d", &a[i]);
++f[a[i]];
}
for(int i = 2; i <= 1000000 ; ++i){
if(!prim[i]){
for(int j = i; j <= 1000000 ; j += i){
++prim[j];
if(j / i % i == 0) prim[j] -= 200000000;
}
}
}
long long Sol = 1LL * n * (n - 1) / 2;
for(int i = 2; i <= 1000000 ; ++i){
if(prim[i] <= 0) continue ;
int nr = 0;
for(int j = i; j <= 1000000 ; j += i)
nr += f[j];
if(prim[i] % 2) Sol = Sol - 1LL * nr * (nr - 1) / 2;
else Sol = Sol + 1LL * nr * (nr - 1) / 2;
}
printf("%lld", Sol);
return 0;
}