Pagini recente » Cod sursa (job #1128611) | Cod sursa (job #1735604) | Cod sursa (job #267902) | Cod sursa (job #543499) | Cod sursa (job #1752533)
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream f("pairs.in");
ofstream g("pairs.out");
const int MAXP=1004;
int N,v[100001],prim[MAXP],lp=0,v2[MAXP];
long long int sol,rez;
bool b[MAXP];
int cmp(const void *x,const void *y)
{
int v1=*((int*) x);
int v2=*((int*) y);
return v1-v2;
}
int main()
{
for(int i = 4; i < MAXP; i += 2)
b[i] = 1;
for(int i = 3; i * i < MAXP; i += 2)
if(b[i] == 0)
for(int j = i * i; j < MAXP; j += i)
b[j] = 1;
for(int i = 2; i < MAXP; i++)
if(b[i] == 0) prim[++lp] = i;
f>>N;
for(int i=1;i<=N;i++)
f>>v[i];
qsort(v+1,N,sizeof(int),cmp);
for(int i=1;i<=N;i++)
{
int j=1;
while(prim[j]<=v[i] && j<=lp)
{
if(v[i]%prim[j]==0)
{
rez+=v2[j];
v2[j]++;
}
j++;
}
}
sol=N*(N-1)/2;
g<<sol-rez;
return 0;
}