Cod sursa(job #333026)
Utilizator | Data | 21 iulie 2009 11:45:03 | |
---|---|---|---|
Problema | Pairs | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.53 kb |
#include<fstream>
#define dmax 1000003
using namespace std;
ifstream in("pairs.in");
ofstream out("pairs.out");
int n,mx=0,t;
long long bune,tot,sol;
bool cr[dmax],temp[dmax];
int main()
{ int i,a,j;
in>>n;
for(i=1;i<=n;i++)
{ in>>a;
if(a>mx)
mx=a;
temp[a]=1;
}
in.close();
for(i=2;i<=mx;i++)
{ if(cr[i]==0)
{ t=0;
for(j=i;j<=mx;j+=i)
{ cr[j]=1;
if(temp[j]==1)t++;
}
if(t>1)
bune+=( t*(t-1)/2 );
}
}
tot=n*(n-1)/2;
sol=tot-bune;
out<<sol;
out.close();
return 0;
}