Pagini recente » Cod sursa (job #2543738) | Cod sursa (job #2514588) | Cod sursa (job #1703994) | Cod sursa (job #1379344) | Cod sursa (job #2451361)
//
// main.cpp
// pairs
//
// Created by Andu Andu on 26/08/2019.
// Copyright © 2019 Andu Andu. All rights reserved.
//
#include <iostream>
#include <fstream>
#define MOD 10000
#define ll long long
using namespace std;
ifstream f ("pairs.in");
ofstream g ("pairs.out");
long long n;
long long i, j, k, x, d;
long long SOL = 1, ciur[1000001], s;
bool isOK[1000001], epp[1000001];
long long maxx = 0;
int main() {
f>>n;
for(int i=1;i<=n;++i) {
f>>x;
isOK[x]=true;
if (x>maxx) {
maxx = 1LL * x;
}
}
for(int i=2;i<=maxx;++i) {
if(!ciur[i]) {
for(int j=i;j<=maxx;j+=i) {
++ciur[j];
if(j % (i*i)==0)
epp[j]=true;
}
}
}
for(int i=2;i<=maxx;++i) {
if(!epp[i]) {
long long nr=0;
for(int j=i;j<=maxx;j+=i) {
if(isOK[j]) ++nr;
}
if(ciur[i]%2==1) s= s + 1LL * (nr*(nr-1)) /2;
else s= s - 1LL * (nr*(nr-1)) /2;
}
}
g<<1LL*(n*(n-1))/2 - s;
return 0;
}