Cod sursa(job #583892)

Utilizator pbobitzaPirvanescu Livius pbobitza Data 23 aprilie 2011 11:26:58
Problema Pairs Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#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;
}