Pagini recente » Cod sursa (job #1437125) | Cod sursa (job #41999) | Cod sursa (job #3131368) | Cod sursa (job #2926452) | Cod sursa (job #2947559)
#include <fstream>
#define DIM 1000001
using namespace std;
ifstream fin("pairs.in");
ofstream fout("pairs.out");
int n,x,maxi,cnt,sol,nrd[DIM],f[DIM];
bool d[DIM];
int main() {
fin>>n;
for (int i=1;i<=n;i++) {
fin>>x;
maxi=max(maxi,x);
f[x]=1;
}
nrd[1]=1;
for (int i=2;i<=maxi;i++)
if (nrd[i]==0)
for (int j=i;j<=maxi;j+=i) {
nrd[j]++;
if (j%(1LL*i*i)==0)
d[j]=1;
}
for (int i=2;i<=maxi;i++)
if (d[i]==0) {
cnt=0;
for (int j=i;j<=maxi;j+=i)
if (f[j]==1)
cnt++;
if (nrd[i]%2==0)
sol-=1LL*cnt*(cnt-1)/2;
else
sol+=1LL*cnt*(cnt-1)/2;
}
fout<<1LL*n*(n-1)/2-sol;
return 0;
}