Pagini recente » Cod sursa (job #2424771) | Cod sursa (job #3265463) | Cod sursa (job #458960) | Cod sursa (job #1762104) | Cod sursa (job #3217290)
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops")
using namespace std;
ifstream fin("pairs.in");
ofstream fout("pairs.out");
int n,v[100010],fr[1000010],nr[1000010],pp[1000010],i,maxi,j,cnt,ans;
int main()
{
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i],fr[v[i]]++,maxi=max(maxi,v[i]);
for(i=2;i<=maxi;i++)
if(nr[i]==0)
for(j=i;j<=maxi;j=j+i)
{
nr[j]++;
if(j%(i*i)==0)
pp[j]++;
}
for(i=2;i<=maxi;i++)
if(pp[i]==0)
{
cnt=0;
for(j=i;j<=maxi;j=j+i)
cnt+=fr[j];
if(nr[i]%2==0)
ans=ans-cnt*(cnt-1)/2;
else
ans=ans+cnt*(cnt-1)/2;
}
fout<<n*(n-1)/2-ans;
return 0;
}