Cod sursa(job #2347126)

Utilizator vladcoroian2001Vlad Coroian vladcoroian2001 Data 18 februarie 2019 15:13:45
Problema Pairs Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <vector>
#include <algorithm>
#include <bitset>
using namespace std;
ifstream fi("pairs.in");
ofstream fo("pairs.out");
const int NMAX=1e5+5,MAX=1e6+5;
int x[NMAX],fct[MAX],mx,n;
bitset <MAX> rau,in;
vector <int> v;
long long rez;
int main()
{
    fi>>n;
    for(int i=1;i<=n;i++)
    {
        fi>>x[i];
        in[x[i]]=1;
        mx=max(x[i],mx);
    }
    for(int i=2;i<=mx;i++)
        if(!fct[i])
            for(int j=i;j<=mx;j+=i)
            {    
                fct[j]++;
                if((j%(i*i))==0)
                    rau[j]=1;
            }
    for(int i=2;i<=mx;i++)
        if(!rau[i])
            v.push_back(i);
    for(int i=0;i<v.size();i++)
        for(int j=v[i];j<=mx;j+=v[i])
            if(in[j])
                rez+=1-(1-fct[v[i]]%2)*2;
    fo<<1LL*n*(n-1)/2-rez;
    fi.close();
    fo.close();
    return 0;
}