Pagini recente » Cod sursa (job #895984) | Istoria paginii utilizator/vvasy1997 | Profil narcis_kta | Atasamentele paginii Clasament abcqq | Cod sursa (job #116069)
Cod sursa(job #116069)
#include<stdio.h>
long int n,i,a,fr[1000002],max,val[1000002],j,nd[1000002],x;
long long int xx,res,sol,nn;
int main()
{
FILE *f,*g;f=fopen("pairs.in","r");g=fopen("pairs.out","w");
fscanf(f,"%ld",&n);
for(i=1;i<=n;i++)
{
fscanf(f,"%ld",&a);fr[a]=1;
max=(max>a)?max:a;
}
for(i=1;i<=max;i++)val[i]=i;
for(i=2;i<=max;i++)
{ if(val[i]==i)
for(j=i;j<=max;j=j+i)
{ nd[j]++;
val[j]/=i;
}
else
if(val[i]!=1)
nd[i]=0;
if(nd[j])
{ for(j=i;j<=max;j=j+i)
x+=fr[j];
xx=(long long int)x;
if(nd[i]%2)res+=xx*(xx-1)/2;
else res-=xx*(xx-1)/2;
}
}
nn=(long long int)n;
sol=nn*(nn-1)/2-res;
fprintf(g,"%lld\n",sol);
fcloseall();
return 0;
}