Cod sursa(job #2451212)

Utilizator RadianElevenAdrian Ariotn RadianEleven Data 26 august 2019 10:50:03
Problema Pairs Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f ("pairs.in");
ofstream g ("pairs.out");
long long n,x, maxx, ciur[1000002],s;
bool isinSet[1000002], ispp[1000002];
int main()
{

    f>>n;
    for(int i=1; i<=n; ++i)
    {
        f>>x;
        isinSet[x] = true;
        maxx = max(maxx, x);
    }
    for (int i=2; i<=maxx; ++i)
    {
        if (!ciur[i])
        {
            for (int j=i; j<=maxx; j+=i)
            {
                ++ciur[j];
                if (j % (i*i) == 0)
                    ispp[j] = true;
            }
        }
    }

    for (int i=2; i<=maxx; ++i)
    {
        if (!ispp[i])
        {
            long long nr=0;
            for (int j=i; j<=maxx; j+=i)
            {
                if (isinSet[j]) ++nr;
            }
            if (ciur[i]%2 == 1) s = s + 1LL * (nr*(nr-1)) /2;
            else s = s - 1LL * (nr*(nr-1)) /2;

        }
    }
    g<<1LL*(n*(n-1))/2 - s;
    return 0;
}