Pagini recente » Cod sursa (job #2427180) | Cod sursa (job #2491602) | Cod sursa (job #1676877) | Cod sursa (job #2639252) | Cod sursa (job #3168411)
#include <bits/stdc++.h>
using namespace std;
#ifndef LOCAL
string name="pairs";
ifstream in(name+".in");
ofstream out(name+".out");
#define cin in
#define cout out
#endif // LOCAL
#define int long long
const int MV = 1e6+5;
int n,inv[MV], mob[MV];
int32_t main()
{
cin>>n;
int a;
for(int i=1;i<=n;i++)
{
cin>>a;
inv[a]++;
}
for(int i=2;i<MV;i++)
{
mob[i]=1;
}
int ans=n*n;
for(int i=2;i<MV;i++)
{
if(mob[i]==0) continue;
int delta=0;
for(int j=i;j<MV;j+=i)
{
delta+=inv[j];
if(j!=i) mob[j]-=mob[i];
}
if(delta==0) continue;
ans-=delta*delta*mob[i];
//cerr<<i<<' '<<delta*delta*mob[i]<<' '<<ans<<'\n';
}
cout<<ans/2<<'\n';
return 0;
}
/*
5
2
6
15
7
10
*/