Cod sursa(job #1295776)

Utilizator refugiatBoni Daniel Stefan refugiat Data 20 decembrie 2014 10:37:47
Problema Pairs Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
#define nmax 100002
#define lmax 1000002
int v[nmax],d[lmax];
char p[lmax],b[lmax],vaz[lmax];
int main()
{
    ifstream si;
    si.open("pairs.in");
    ofstream so;
    so.open("pairs.out");
    int n;
    si>>n;
    int i,l=0;
    for(i=0;i<n;++i)
    {
        si>>v[i];
        vaz[v[i]]=1;
        l=max(v[i],l);
    }
    for(i=2;i<=l;++i)
    {
        if(p[i]==0)
        {
            int j;
            for(j=2;j*i<=l;++j)
            {
                if(j%i==0)
                    b[i*j]=1;
                ++d[i*j];
            }
        }
    }
    long long sol=0;
    for(i=2;i<=l;++i)
    {
        if(b[i]==0)
        {
            int nr=0;
            for(int j=i;j<=l;j=j+i)
            {
                if(vaz[j]==1)
                    ++nr;
            }
            nr=nr*(nr-1)/2;
            if(d[i]%2==0)
                sol+=nr;
            else
                sol-=nr;
        }
    }
    so<<n*(n-1)/2-sol;
}