Pagini recente » Cod sursa (job #1121687) | Istoria paginii utilizator/livadaru97 | Cod sursa (job #1202044) | pre106 | Cod sursa (job #1542728)
#include<bits/stdc++.h>
using namespace std;
int i,j,n,aux,c[1000005],k;
bool a[1000005];
long long rs;
int main()
{
ifstream cin("pairs.in");
ofstream cout("pairs.out");
ios_base::sync_with_stdio(0); cin.tie(0);
cin>>n; rs=(1LL*n*n-n)/2;
for(i=1;i<=n;++i) cin>>aux,a[aux]=1,k=max(k,aux);
for(i=2;i<=k;++i)
if(!c[i]) for(j=i;j<=k;j+=i) ++c[j];
for(i=2;i*i<=k;++i)
for(j=i*i;j<=k;j+=i*i) c[j]=0;
for(i=2;i<=k;++i)
if(c[i])
{
for(aux=0,j=i;j<=k;j+=i) if(a[j]) ++aux;
if(c[i]&1) rs-=(1LL*aux*aux-aux)/2;
else rs+=(1LL*aux*aux-aux)/2;
}
cout<<rs<<'\n';
return 0;
}