Pagini recente » Cod sursa (job #683385) | Cod sursa (job #1386176) | Cod sursa (job #2152016) | Cod sursa (job #943786) | Cod sursa (job #1295350)
#include <cstdio>
#include <algorithm>
#include <fstream>
using namespace std;
ifstream f("pairs.in");
ofstream g("pairs.out");
int a[100010],b[1000010],n,lim,i,j;
char d[1000010],ciur[1000010],c[1000010];
int main()
{
f>>n;
for(i=1; i<=n; i++)
{
f>>a[i];
d[a[i]]=1;
lim=max(lim,a[i]);
}
for(i=2; i<=lim; i++)
if(!ciur[i])
{
for(j=1; i*j<=lim; j++)
{
ciur[j*i]=1;
b[i*j]++;
if(j%i==0) c[i*j]=1;
}
}
long long sol=0;
for(i=2; i<=lim; i++)
if(!c[i])
{
int nr=0;
for(j=i; j<=lim; j+=i) if(d[j]) nr++;
if(b[i]%2) sol+=1LL*nr*(nr-1)/2;
else sol-=1LL*nr*(nr-1)/2;
}
g<<1LL*n*(n-1)/2-sol;
return 0;
}