Pagini recente » Cod sursa (job #1234348) | Cod sursa (job #2822390) | Cod sursa (job #239925) | Cod sursa (job #2305094) | Cod sursa (job #1416433)
#include <fstream>
#define DIM 100002
#define NMAX 1000002
using namespace std;
ifstream fin("pairs.in");
ofstream fout("pairs.out");
int N,maxim;
bool viz[NMAX];
int ok[NMAX];
long long Solution;
int main(){
fin>>N;
for(int i=1;i<=N;i++){
int x;
fin>>x;
maxim=max(maxim,x);
viz[x]=1;
}
for(int i=2;i<=maxim;i++){
if(ok[i]){
if(ok[i]==1)
continue;
int nrc=0;
for(int j=i;j<=maxim;j+=i)
nrc+=viz[j];
if(ok[i]%2==1)
Solution+=1LL*nrc*(nrc-1)/2;
else
Solution-=1LL*nrc*(nrc-1)/2;
continue;
}
int nrc=0;
for(int j=i;j<=maxim;j+=i)
nrc+=viz[j];
for(int j=i+i;j<=maxim;j+=i){
if(ok[j]!=-1)
ok[j]++;
if(j%(i*i)==0)
ok[j]=-1;
}
Solution+=1LL*nrc*(nrc-1)/2;
}
fout<<1LL*N*(N-1)/2-Solution<<"\n";
fin.close();fout.close();
return 0;
}