Pagini recente » Cod sursa (job #2807905) | Cod sursa (job #2346762) | Cod sursa (job #2498471) | Cod sursa (job #2513400) | Cod sursa (job #2347127)
#include <fstream>
#include <vector>
#include <algorithm>
#include <bitset>
using namespace std;
ifstream fi("pairs.in");
ofstream fo("pairs.out");
const int NMAX=1e5+5,MAX=1e6+5;
int x[NMAX],fct[MAX],mx,n;
bitset <MAX> rau,in;
vector <int> v;
long long rez;
int main()
{
fi>>n;
for(int i=1;i<=n;i++)
{
fi>>x[i];
in[x[i]]=1;
mx=max(x[i],mx);
}
for(int i=2;i<=mx;i++)
if(!fct[i])
for(int j=i;j<=mx;j+=i)
{
fct[j]++;
if((j%(i*i))==0)
rau[j]=1;
}
for(int i=2;i<=mx;i++)
if(!rau[i])
v.push_back(i);
for(int i=0;i<v.size();i++)
{
long long d=0;
for(int j=v[i];j<=mx;j+=v[i])
if(in[j]) d++;
if(fct[v[i]]%2) rez+=d*(d-1)/2;
else rez-=d*(d-1)/2;
}
fo<<1LL*n*(n-1)/2-rez;
fi.close();
fo.close();
return 0;
}