Cod sursa(job #3175426)

Utilizator xXoctavianXxStanescu Matei Octavian xXoctavianXx Data 25 noiembrie 2023 19:39:56
Problema Pairs Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>
#define int long long

using namespace std;

ifstream fin("pairs.in");
ofstream fout("pairs.out");

int n;
const int nmax = 1e5+5;

const int vmax = 1e6+6;
int mob[vmax];
int p[vmax];

inline void init_mob()
{
    for(int i=2; i<vmax; i++) mob[i] = 1;

    for(int i=2; i<vmax; i++)
    {
        if(mob[i] == 0) continue;

        for(int j = 2* i; j<vmax; j+=i)
        {
            mob[j] -= mob[i];
            p[i] += p[j];
        }
    }
}

signed main()
{
    fin>>n;
    for(int i=0; i<n; i++)
    {
        int v;
        fin>>v;
        p[v] = 1;
    }
    init_mob();

    int rasp = n * (n-1) / 2;
    for(int i=2; i<vmax; i++)
    {
        rasp -= mob[i] * p[i] * (p[i] - 1) / 2;
    }
    fout<<rasp;
    return 0;
}