Pagini recente » Cod sursa (job #2487120) | Cod sursa (job #661010) | Cod sursa (job #2144219) | Cod sursa (job #2497533) | Cod sursa (job #882849)
Cod sursa(job #882849)
#include<fstream>
#define nmax 1000100
using namespace std;
long long v[nmax],sol,nr,mx,n;
int M[nmax];
ifstream fin("pairs.in");
ofstream fout("pairs.out");
int main()
{
long long i,j,x;
fin>>n;
sol=n*(n-1)/2;
for(;n;n--)
{
fin>>x;
M[x]=1;
if(x>mx)mx=x;
}
for(i=2;i<=mx;i++)
if(!v[i])
for(j=i;j<=mx;j+=i)
v[j]++;
for(i=2;i*i<=mx;i++)
for(j=i*i;j<=mx;j+=i*i)
v[j]=0;
for(i=2;i<=mx;i++)
if(v[i])
{
nr=0;
for(j=i;j<=mx;j+=i)
if(M[j])nr++;
if(v[i]%2)sol-=nr*(nr-1)/2;
else sol+=nr*(nr-1)/2;
}
fout<<sol;
return 0;
}