Pagini recente » Cod sursa (job #1515234) | Cod sursa (job #2418758) | Cod sursa (job #2539695) | Cod sursa (job #999556) | Cod sursa (job #2970274)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("pairs.in");
ofstream fout("pairs.out");
int n,x,maxi,fr[1000010],ndp[1000010],pp[1000010],i,j;
long long cnt,ans;
signed main()
{
fin>>n;
for(i=1;i<=n;i++)
{
fin>>x;
maxi=max(maxi,x);
fr[x]++;
}
ndp[1]=1;
for(i=2;i<=maxi;i++)
if(ndp[i]==0)
for(j=i;j<=maxi;j=j+i)
{
ndp[j]++;
if(j%(i*i)==0)
pp[j]=1;
}
for(i=2;i<=maxi;i++)
if(pp[i]==0)
{
cnt=0;
for(j=i;j<=maxi;j=j+i)
cnt=cnt+fr[j];
if(ndp[i]%2==1)
ans=ans+cnt*(cnt-1)/2;
else ans=ans-cnt*(cnt-1)/2;
}
ans=1LL*n*(n-1)/2-ans;
fout<<ans;
return 0;
}