Pagini recente » Cod sursa (job #1493178) | Cod sursa (job #367319) | Cod sursa (job #1561515) | Cod sursa (job #1888127) | Cod sursa (job #3175426)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("pairs.in");
ofstream fout("pairs.out");
int n;
const int nmax = 1e5+5;
const int vmax = 1e6+6;
int mob[vmax];
int p[vmax];
inline void init_mob()
{
for(int i=2; i<vmax; i++) mob[i] = 1;
for(int i=2; i<vmax; i++)
{
if(mob[i] == 0) continue;
for(int j = 2* i; j<vmax; j+=i)
{
mob[j] -= mob[i];
p[i] += p[j];
}
}
}
signed main()
{
fin>>n;
for(int i=0; i<n; i++)
{
int v;
fin>>v;
p[v] = 1;
}
init_mob();
int rasp = n * (n-1) / 2;
for(int i=2; i<vmax; i++)
{
rasp -= mob[i] * p[i] * (p[i] - 1) / 2;
}
fout<<rasp;
return 0;
}