Cod sursa(job #2446703)

Utilizator valentinchipuc123Valentin Chipuc valentinchipuc123 Data 10 august 2019 14:48:16
Problema Pairs Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <string>
using namespace std;
long long int v[100005],n,maxim=0,nr[100005],numar,t;
ifstream f("pairs.in");
ofstream g("pairs.out");

int main()
{
f>>n;
for(int i=1;i<=n;i++)
  {
   f>>t;
   if(t>maxim) maxim=t;
   v[t]=1;
  }
numar=(n-1)*n/2;
for(int i=2;i<=maxim;i++)
 nr[i]=-1;
for(int i=2;i<=maxim;i++)
  {
   if(nr[i]==-1)
       {
        if(v[i]==1) nr[i]=1;
        else nr[i]=0;
        for(int j=i;j<=maxim;j+=i)
         if(v[j]==1) nr[j]=nr[j-i]+1;
         else nr[j]=nr[j-i];
        int r=maxim-maxim%i;
        if(nr[r]>=2) numar-=((nr[r]-1)*nr[r])/2;
       }
  }
g<<numar;
}