Pagini recente » Cod sursa (job #1504965) | Cod sursa (job #2953186) | Cod sursa (job #2700190) | Cod sursa (job #607484) | Cod sursa (job #2306751)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("pairs.in");
ofstream fout("pairs.out");
int N,i,mx,j,x,f[1000005],v[1000005],sol,pr[1000005],ct;
int main()
{fin>>N;
for(i=1;i<=N;i++)
{fin>>x;
mx=max(x,mx);
v[x]=1;
}
for(i=2;i<=mx;i++)
{if(f[i]==0)
{pr[i]=1;
for(j=i*2;j<=mx;j=j+i)
f[j]++;
}
}
for(i=2;i<=mx;i++)
{if(pr[i]>=0)
{ct=0;
for(j=i;j<=mx;j+=i)
{
if(f[j/i]==0&&(j/i)%j!=0) pr[j]++;
if(v[j]==1) ct++;;
}
ct=ct*(ct-1)/2;
if(pr[i]%2==1) sol-=ct;
else sol+=ct;
}
}
fout<<N*(N-1)/2-sol<<"\n";
}