Pagini recente » Cod sursa (job #2006473) | Cod sursa (job #266722) | Cod sursa (job #2910083) | Cod sursa (job #1766929) | Cod sursa (job #583892)
Cod sursa(job #583892)
#include <iostream>
#include<fstream>
using namespace std;
ifstream in("pairs.in");
ofstream out("pairs.out");
long long n,mx,a,i,j,nm,s=0;
int v1[1000003], v2[1000003], v3[1000003], v4[1000003];
int main()
{
in>>n;
for (i=1;i<=n;i++)
{
in>>a;
v1[a]=1;
if (a>mx)
mx=a;
}
for (i=2;i<=mx;++i)
{
if (v4[i]==0)
{
for (j=1;j<=mx/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<=mx;++i)
{
if (v3[i]==0)
{
nm=0;
for (j=1;j<=mx/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;
}
}
out<<(n*(n-1)/2)-s;
return 0;
}