Pagini recente » Cod sursa (job #3257585) | Cod sursa (job #858219) | Cod sursa (job #1920780) | Cod sursa (job #1224963) | Cod sursa (job #573553)
Cod sursa(job #573553)
#include <stdio.h>
FILE *f,*g;
long long n,max,a,i,j,nm,s;
char v1[1000003], v2[1000003], v3[1000003], v4[1000003];
int main()
{
f=fopen("pairs.in","r");
g=fopen("pairs.out","w");
fscanf(f,"%d",&n);
for (i=1;i<=n;i++)
{
fscanf(f,"%d",&a);
v1[a]=1;
if (a>max)
max=a;
}
for (i=2;i<=max;i++)
{
if (v4[i]==0)
{
for (j=1;j<=max/i;j++)
{
v4[j*i]=1;
if (j%i==0)
v3[j*i]=1;
v2[j*i]=(v2[j*i]+1)%2;
}
}
}
for (i=2;i<=max;i++)
{
if (v3[i]==0)
{
nm=0;
for (j=1;j<=max/i;j++)
{
if (v1[i*j]==1)
nm=nm+1;
}
if (v2[i]==0)
s=s-nm*(nm-1)/2;
else
s=s+nm*(nm-1)/2;
}
}
fprintf(g,"%lld",n*(n-1)/2-s);
fclose(g);
return 0;
}