Pagini recente » Cod sursa (job #2516896) | Cod sursa (job #1243830) | Cod sursa (job #105404) | Cod sursa (job #1339205) | Cod sursa (job #1957871)
#include <bits/stdc++.h>
#define Nmax 1000005
using namespace std;
ifstream f("pairs.in");
ofstream g("pairs.out");
bool x[Nmax];
int v[Nmax];
int main()
{long long n,i,j,nr,rez=0,val,MAX=-1;
f>>n;
for(i=1;i<=n;i++)
{
f>>val;
x[val]=true;
MAX=max(MAX,val);
}
for(i=2;i<=MAX;i++)
if(!v[i])
for(j=i;j<=MAX;j+=i)
v[j]++;
for(i=2;i*i<=MAX;i++)
for(j=i*i;j<=MAX;j+=i*i)
v[j]=-1;
for(i=2;i<=MAX;i++)
{
if(v[i]>-1)
{
nr=0;
for(j=i;j<=MAX;j+=i)
nr+=x[j];
if(v[i]%2==1) rez+=(nr*(nr-1)/2);
else rez-=(nr*(nr-1)/2);
}
}
g<<n*(n-1)/2-rez;
return 0;
}