Pagini recente » Cod sursa (job #54929) | Cod sursa (job #2240514) | Cod sursa (job #2545090) | Cod sursa (job #796842) | Cod sursa (job #572642)
Cod sursa(job #572642)
#include <fstream>
#include <bitset>
#define DN 1000005
using namespace std;
bitset<DN> viz,nrf/*par/impar*/,prim,divv;
int main()
{
ifstream f("pairs.in");
ofstream g("pairs.out");
long long n,rez=0,cc,lim=0,i,j;
f>>n;
for( i=1; i<=n; ++i) {
f>>cc;
viz[cc]=1;
lim=max(lim,cc);
}
for( i=2; i<=lim; ++i) if(0==prim[i]) for( j=1; j<=lim/i;++j) {
prim[j*i]=1;
if(0==j%i) divv[j*i]=1;
nrf[j*i]=nrf[j*i]^1;
}
for( i=2; i<=lim; ++i) if(0==divv[i]) {
long long cont=0;
for( j=1; j<=lim/i; ++j) if(1==viz[i*j]) ++cont;
if(0==nrf[i]) rez-=(cont*(cont-1)/2);
else rez+=(cont*(cont-1)/2);
}
g<<1LL*n*(n-1)/2-rez;
return 0;
}