Cod sursa(job #3219177)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 30 martie 2024 12:31:12
Problema Pairs Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("pairs.in");
ofstream fout("pairs.out");
const int Max = 1000000;
int x[Max + 2], mul[Max + 2];
long long n, a, i, j, r;
bool fr[Max + 2];

int main() {
    fin >> n;
    for(i = 1; i <= n; i++) {
        fin >> a;
        fr[a] = true;
    }

    for(i = 1; i <= Max; i++) {
        for(j = i; j <= Max; j += i) mul[i] += fr[j];
    }

    for(i = 2; i <= Max; i++) {
        x[i]++;
        r += 1LL * x[i] * mul[i] * (mul[i] - 1) / 2;
        for(j = 2 * i; j <= Max; j += i) x[j] -= x[i];
    }
    fout << n * (n - 1) / 2 - r;

    return 0;
}