Pagini recente » Cod sursa (job #2974635) | Cod sursa (job #2513315) | Cod sursa (job #2309830) | Cod sursa (job #3218763) | Cod sursa (job #2347126)
#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++)
for(int j=v[i];j<=mx;j+=v[i])
if(in[j])
rez+=1-(1-fct[v[i]]%2)*2;
fo<<1LL*n*(n-1)/2-rez;
fi.close();
fo.close();
return 0;
}