Cod sursa(job #3253640)

Utilizator bexxRebeca N bexx Data 3 noiembrie 2024 22:02:41
Problema Pairs Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
using namespace std;

ifstream cin("pairs.in");
ofstream cout("pairs.out");

const int lim=1e6+2;
int n,nmax=-1;
long long fr[lim],gcd[lim];

void read()
{
    cin>>n;
    int x;
    for(int i=0;i<n;i++)
        {
            cin>>x;
            fr[x]++;
            nmax=max(nmax,x);
        }
}
long long pairs()
{
    for(int i=nmax;i>0;i--)
    {
        gcd[i]=fr[i];
        for(int j=2*i;j<=nmax;j+=i)
            gcd[i]+=fr[j];
        gcd[i]=gcd[i]*(gcd[i]-1)/2;
        for(int j=2*i;j<=nmax;j+=i)
            gcd[i]-=gcd[j];
    }
    return gcd[1];
}
int main()
{
    read();
    cout<<pairs();
    return 0;
}