Cod sursa(job #1542725)

Utilizator DjokValeriu Motroi Djok Data 5 decembrie 2015 16:42:31
Problema Pairs Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<bits/stdc++.h>
using namespace std;

int i,j,n,aux,c[1000005],k;
bool a[1000005];
long long rs;

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

  ios_base::sync_with_stdio(0); cin.tie(0);

  cin>>n; rs=(1LL*n*n-n)/2;
  for(i=1;i<=n;++i) cin>>aux,a[aux]=1,k=max(k,aux);

  for(i=2;i<=k;++i)
  if(!c[i]) for(j=i;j<=k;j+=i) ++c[j];

  for(i=2;i*i<=k;++i)
   for(j=i*i;j<=k;j+=i*i) c[j]=0;

  for(i=2;i<=k;++i)
  if(c[i])
  {
    for(aux=0,j=i;j<=k;j+=i) if(a[j]) ++aux;

    rs+=-1*(c[i]%2)*(1LL*aux*aux-aux)/2;
  }

  cout<<rs<<'\n';

 return 0;
}