Pagini recente » Cod sursa (job #282588) | Cod sursa (job #925498) | Cod sursa (job #3223699) | Cod sursa (job #2605493) | Cod sursa (job #1156276)
#include <stdio.h>
long long sol,nr,max=0,i,j,n,k,c[1000010],q;
bool a[1000010],b[1000010],ok[1000010];
FILE *f=fopen("pairs.in","r");
FILE *g=fopen("pairs.out","w");
int main()
{
fscanf(f,"%lld",&n);
for (i=1;i<=n;i++)
{
fscanf(f,"%lld",&q);
a[q]=1;
if(q>max)max=q;
}
for (i=2;i<=max;i++)
if (!(b[i]))
for (j=1;j<=max/i;j++)
{
b[i*j]=1;
if (!(j%i)) ok[i*j]=1;
c[i*j]++;
}
for (i=2;i<=max;i++)
if (!ok[i])
{
nr=0;
for (j=1;j<=max/i;j++)
if (a[i*j]) nr++;
if (c[i]%2) sol+=1LL*(nr*(nr-1)/2);
else sol-=1LL*(nr*(nr-1)/2);
}
sol=1LL*(1LL*(n*(n-1)/2)-sol);
fprintf(g,"%lld",sol);
return 0;
}