Pagini recente » Cod sursa (job #1679020) | Cod sursa (job #1141341) | Cod sursa (job #235977) | Cod sursa (job #2573966) | Cod sursa (job #1415909)
/*Let the game begin... */
#include <fstream>
#define dim 1000005
using namespace std;
ifstream fin("pairs.in");
ofstream fout("pairs.out");
int n,i,j,m,v[dim],x,nr;
long long sol;
bool f[dim],ff[dim];
int main(){
fin>>n;
for(i=1;i<=n;i++){
fin>>x;
f[x]=1;
m=max(m,x);
}
for(i=2;i<=m;i++){
nr=0;
if(v[i] && (!ff[i])){
for(j=i;j<=m;j+=i){
nr+=f[j];
}
if(v[i]%2==1){
sol+=1LL*nr*(nr-1)/2;
}
else{
sol-=1LL*nr*(nr-1)/2;
}
}
else{
if(!v[i]){
for(j=i;j<=m;j+=i){
nr+=f[j];
if(!ff[j]){
v[j]++;
}
if(j%(i*i)==0){
ff[j]=1;
}
}
sol+=1LL*nr*(nr-1)/2;
}
}
}
sol=1LL*n*(n-1)/2-sol;
fout<<sol<<"\n";
return 0;
}