Pagini recente » Cod sursa (job #1984284) | Cod sursa (job #1253511) | Cod sursa (job #3194681) | Cod sursa (job #786163) | Cod sursa (job #550823)
Cod sursa(job #550823)
#include <stdio.h>
long long 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=1;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("%lld",n*(n-1)/2-s);
return 0;
}