Cod sursa(job #3293222)

Utilizator Andreea3425Diaconu Andreea Andreea3425 Data 10 aprilie 2025 20:16:03
Problema Pairs Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream cin ("pairs.in");
ofstream cout ("pairs.out");

#define N 100000

int v[N+1], f[N+1];

int main()
{
    int n,i,d,a,k,j,h,put,q,p,r;
    cin >> n;
    for (i=1; i<=n; i++)
        cin >> v[i];
    sort(v+1, v+n+1);
    r=0;
    for (i=1; i<=n; i++){
        d=2;
        a=v[i];
        vector <int> prim;
        while (a>1){
            if (a%d==0){
                prim.push_back(d);
                while (a%d==0)
                    a/=d;
            }
            d++;
            if (d*d>a)
                d=a;
        }
        k=prim.size();
        p=0;
        for (j=1; j<(1<<k); j++){
            put=1;
            q=0;
            for (h=0; h<k; h++)
                if (j&(1<<h)){
                    put*=prim[h];
                    q++;
                }
            f[put]++;
            if (q%2==1)
                p+=f[put];
            else if (q!=0)
                p-=f[put];
        }
        r+=i-p;
    }
    cout << r << '\n';
    return 0;
}