Pagini recente » Cod sursa (job #2990742) | Cod sursa (job #404719) | Cod sursa (job #197869) | Cod sursa (job #755575) | Cod sursa (job #494465)
Cod sursa(job #494465)
#include <stdio.h>
long int i, n, a, max, j, nm, s;
char v[1000003], nfp[1000003], p2[1000003], prim[1000003];
int main()
{
freopen("pairs.in","r",stdin);
freopen("pairs.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++)
{
scanf("%d",&a);
v[a]=1;
if (a>max)
max=a;
}
for (i=2;i<=max;i++)
if (prim[i]==0)
for (j=2;j<=max/i;j++)
{
prim[j*i]=1;
if (j%i==0)
p2[j*i]=1;
nfp[j*i]=(nfp[j*i]+1)%2;
}
for (i=2;i<=max;i++)
if (p2[i]==0)
{
nm=0;
for (j=1;j<=max/i;j++)
if (v[i*j]==1)
nm=nm+1;
if (nfp[i]==0)
s=s+nm*(nm-1)/2;
else
s=s-nm*(nm-1)/2;
}
printf("%ld",n*(n-1)/2-s);
}