Cod sursa(job #3282692)

Utilizator Barbu_MateiBarbu Matei Barbu_Matei Data 6 martie 2025 13:55:50
Problema Pairs Scor 0
Compilator cpp-64 Status done
Runda oji_go_11_12 Marime 0.85 kb
#include <bits/stdc++.h>
using namespace std;

int n, v[100001];
int nr[1000001];

int solve(int pairs, int n) {
    vector<int> v;
    if (n % 2 == 0) {
        ++nr[2];
        v.push_back(2);
    }
    while (n % 2 == 0) {
        n /= 2;
    }
    for (int i = 3; i * i <= n; ++i) {
        if (n % i == 0) {
            ++nr[i];
            v.push_back(i);
        }
        while (n % i == 0) {
            n /= i;
        }
    }
    if (n != 1) {
        ++nr[n];
        v.push_back(n);
        n /= n;
    }
    for (auto i : v) {
        pairs -= (nr[i] - 1);
    }
    return pairs;
}

int main() {
    ifstream cin("pairs.in");
    ofstream cout("pairs.out");
    cin >> n;
    int ans = 0;
    for (int i = 1; i <= n; ++i) {
        cin >> v[i];
        ans += solve(i - 1, v[i]);
    }
    cout << ans;
}