Cod sursa(job #1752532)

Utilizator nurof3nCioc Alex-Andrei nurof3n Data 4 septembrie 2016 13:07:58
Problema Pairs Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream f("pairs.in");
ofstream g("pairs.out");
const int MAXP=1004;
int N,v[100001],prim[MAXP],lp=0,v2[MAXP];
long long int sol,rez;
bool b[MAXP];
int cmp(const void *x,const void *y)
{
    int v1=*((int*) x);
    int v2=*((int*) y);
    return v1-v2;
}
int main()
{
    for(int i = 4; i < MAXP; i += 2)
        b[i] = 1;
    for(int i = 3; i * i < MAXP; i += 2)
        if(b[i] == 0)
            for(int j = i * i; j < MAXP; j += i)
                b[j] = 1;
    for(int i = 2; i < MAXP; i++)
        if(b[i] == 0) prim[++lp] = i;
    f>>N;
    for(int i=1;i<=N;i++)
        f>>v[i];
    qsort(v+1,N,sizeof(int),cmp);
    for(int i=1;i<=N;i++)
    {
        int j=1;
        while(prim[j]<=v[i])
        {
            if(v[i]%prim[j]==0)
            {
                rez+=v2[j];
                v2[j]++;
            }
            j++;
        }

    }
    sol=N*(N-1)/2;
    g<<sol-rez;
    return 0;
}