Cod sursa(job #3291381)

Utilizator nistor_dora_valentinaNistor Dora Valentina nistor_dora_valentina Data 4 aprilie 2025 16:25:36
Problema Pairs Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("pairs.in");
ofstream fout("pairs.out");
int n, a[10005], i, j, fr[10005], sol;
vector <int> prim;
signed main()
{
    fin>>n;
    for(i=1; i<=n; i++)
        fin>>a[i];
    sort(a+1, a+n+1);
    for(i=1; i<=n; i++)
    {
        int d=2, c=a[i];
        vector <int> prim;
        while(c>1)
        {
            if(c%d==0)
            {
                prim.push_back(d);
                while(c%d==0)
                    c/=d;
            }
            d++;
            if(d*d>c)
                d=c;
        }
        int nr=prim.size();
        int ans=0;
        for(int mask=1; mask<(1<<nr); mask++)
        {
            int pr=1, nr1=0;
            for(int j=0; j<nr; j++)
                if(mask&(1<<j))
                {
                    pr*=prim[j];
                    nr1++;
                }
            fr[pr]++;
            if(nr1%2==1)
                ans+=fr[pr];
            else if(nr1!=0)
                ans-=fr[pr];
        }
        sol+=i-ans;
    }
    fout<<sol;
    return 0;
}