Cod sursa(job #2309805)

Utilizator pasoi_stefanPasoi Stefan pasoi_stefan Data 29 decembrie 2018 20:09:25
Problema Pairs Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<fstream>
using namespace std;
ifstream cin("pairs.in");
ofstream cout("pairs.out");
int n,x,NrEl[1000005],PrDesc[1000005],Prez[1000005];
long long Total,Rez;
int main(){

    for(int i=2;i<=1000000;i++)
        if(PrDesc[i]==0)
            for(int j=i;j<=1000000;j+=i)
                PrDesc[j]++;

    cin>>n;

    for(int i=1;i<=n;i++){

        cin>>x;
        Prez[x]++;

    }

    for(int i=2;i<=1000000;i++)
        if(PrDesc[i]==1)
            for(int j=i;j<=1000000;j+=i)
                 NrEl[i]+=Prez[j];

    Total=1LL*n*(n-1)/2;

    for(int i=2;i<=1000000;i++)

        if(PrDesc[i]%2==0)
            Rez-=1LL*NrEl[i]*(NrEl[i]-1)/2;

        else
            Rez+=1LL*NrEl[i]*(NrEl[i]-1)/2;

    cout<<Total-Rez;

}