Pagini recente » Cod sursa (job #3177523) | Cod sursa (job #2395127) | Cod sursa (job #2982377) | Cod sursa (job #2469978) | Cod sursa (job #3221717)
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ifstream fin("pairs.in");
ofstream fout("pairs.out");
const int N=1e5+1,VALMAX=1e6+1;
int ciur[VALMAX];
bool vc[VALMAX];
int main()
{
int n,i,j,x,cnt;
ll rez=0;
fin>>n;
for(i=2;i<=VALMAX;i++)
{
if(ciur[i]==0){
for(j=i;j<=VALMAX;j+=i){
if(ciur[j]!=-1)
ciur[j]++;
else
if((j/i)%i==0)
ciur[j]=-1;
}
}
}
for(i=1;i<=n;i++)
{
fin>>x;
vc[x]=1;
}
for(i=2;i<=VALMAX;i++)
{
cnt=0;
for(j=i;j<=VALMAX;j+=i)
{
if(vc[j])
cnt++;
}
if(ciur[i]==-1)
continue;
if(ciur[i]%2==0)
rez-=1LL*cnt*(cnt-1)/2;
else
rez+=1LL*cnt*(cnt-1)/2;
}
fout<<n*(n-1)/2-rez;
return 0;
}