Cod sursa(job #2127693)

Utilizator sichetpaulSichet Paul sichetpaul Data 10 februarie 2018 22:23:50
Problema Pairs Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <algorithm>
using namespace std;
bool fr[1000001],ok[1000001];
int prim[20],v[100001];
int main()
{ int x,i,nr,j,n,k,d,Max=0,p;
    ifstream f("pairs.in");
    ofstream g("pairs.out");
    f>>n;
    for (i=1;i<=n;++i) {
        f>>v[i];
        Max=max(Max,v[i]);
        fr[v[i]]=1;
    }
    sort(v+1,v+n+1);
    long long sol=0,sum;
    for (i=1;i<=n;++i) {
        sum=n-i;
        x=v[i];
        d=2;
        nr=0;
        while (x>1) {
            if (x%d==0) {
                ++nr;
                prim[nr]=d;
                while (x%d==0)
                    x/=d;
            }
            ++d;
        }
      for (j=1;j<=nr;++j)
      for (k=v[i]/prim[j]+1;prim[j]*k<=Max;++k)
        if (fr[prim[j]*k]==1 && ok[prim[j]*k]==0)
           ok[prim[j]*k]=1,--sum;

        for (p=1;p<=Max;++p)
            ok[p]=0;
        sol+=sum;
    }
     g<<sol;
    return 0;
}