Pagini recente » Cod sursa (job #1826283) | Cod sursa (job #2619570) | Cod sursa (job #2977640) | Cod sursa (job #2819427) | Cod sursa (job #557790)
Cod sursa(job #557790)
#include <stdio.h>
#define Nmax 100009
#define Max 1000000
#define LL long long
int nr,max=0,i,j,n,k,c[Max],d[Nmax];
bool a[Max],b[Max],ok[Max];
LL sol;
int main()
{
freopen("pairs.in","r",stdin);
freopen("pairs.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++)
{
scanf("%d",&d[i]);
a[d[i]]=true;
if (d[i]>max) max=d[i];
}
for (i=2;i<=max;i++)
if (!(b[i]))
for (j=1;j<=max/i;j++)
{
b[i*j]=true;
if (!(j%i)) ok[i*j]=true;
c[i*j]++;
}
for (i=2;i<=max;i++)
if (!ok[i])
{
nr=0;
for (j=1;j<=n;j++)
if (!(d[j]%i)) nr++;
if (c[i]%2) sol+=((LL)nr*(nr-1)/2);
else sol-=((LL)nr*(nr-1)/2);
}
printf("%lld",(n*(n-1)/2)-sol);
return 0;
}