Cod sursa(job #1295350)

Utilizator calin9819Costea Calin calin9819 Data 19 decembrie 2014 12:10:36
Problema Pairs Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <cstdio>
#include <algorithm>
#include <fstream>
using namespace std;

ifstream f("pairs.in");
ofstream g("pairs.out");

int a[100010],b[1000010],n,lim,i,j;
char d[1000010],ciur[1000010],c[1000010];

int main()
{
    f>>n;
    for(i=1; i<=n; i++)
    {
        f>>a[i];
        d[a[i]]=1;
        lim=max(lim,a[i]);
    }
    for(i=2; i<=lim; i++)
        if(!ciur[i])
        {
            for(j=1; i*j<=lim; j++)
            {
                ciur[j*i]=1;
                b[i*j]++;
                if(j%i==0) c[i*j]=1;
            }
        }
    long long sol=0;
    for(i=2; i<=lim; i++)
        if(!c[i])
        {
            int nr=0;
            for(j=i; j<=lim; j+=i) if(d[j]) nr++;
            if(b[i]%2) sol+=1LL*nr*(nr-1)/2;
            else sol-=1LL*nr*(nr-1)/2;
        }
    g<<1LL*n*(n-1)/2-sol;
    return 0;
}