Pagini recente » Cod sursa (job #2510123) | Cod sursa (job #3226095) | Profil Andrei-27 | Cod sursa (job #3135874) | Cod sursa (job #1293749)
#include<iostream>
#include<fstream>
#include<bitset>
#include<algorithm>
using namespace std;
#define MAXX 1000010
#define N 100010
bitset<MAXX> p,b;
int d[N];
int main()
{
ifstream si;
si.open("pairs.in");
ofstream so;
so.open("pairs.out");
long long n;
si>>n;
int v[n],i;
int maxx=0;
for(i=0;i<n;++i)
{
si>>v[i];
if(v[i]>maxx)
maxx=v[i];
}
p[1]=0;
b[1]=1;
int j;
for(i=2;i<=maxx;++i)
{
if(p[i]==0)
{
d[i]=1;
for(j=2;(i*j)<=maxx;++j)
{
p[i*j]=1;
if(j%i==0)
b[i*j]=1;
++d[i*j];
}
}
}
//...............................................................
int cont;
long long s;
s=0;
for(i=2;i<=maxx;++i)
{
if(b[i]==0)
{
cont=0;
for(j=0;j<n;++j)
if(v[j]%i==0)
++cont;
cont=cont*(cont-1);
cont=cont/2;
if(d[i]%2==0)
s=s-cont;
else
s=s+cont;
}
}
so<<((n*(n-1))/2-s);
}