Cod sursa(job #1982426)

Utilizator Robert_VRVRobert Vadastreanu Robert_VRV Data 18 mai 2017 19:50:10
Problema Pairs Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>

using namespace std;

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

int n, f[1000001], v[1000001], c[1000001];

int main()
{
    fin >> n;
    int nr;
    for (int i=1; i<=n; i++)
    {
        fin >> nr;
        f[nr] ++;
    }
    fin.close();
    for (int i=1; i<=1000001; i++)
        for (int j=1; j*i <=1000001; j++)
            v[i] += f[j*i];
    for (int i=2; i<=1000001; i++)
        if (c[i] == 0)
            for (int j=1; j*i<=1000001; j++)
                if (j % i != 0)
                    c[j*i] ++;
                else c[j*i] = -1;
    int res = 0;
    for (int i=1; i<=1000001; i++){
        if (c[i] % 2 == 1 && c[i] > 0)
            res = res + v[i]*(v[i]-1)/2;
        if (c[i] % 2 == 0 && c[i] > 0)
            res = res + v[i]*(v[i]-1)/2;
    }
    fout << n*(n-1)/2 - res;
    return 0;
}