Pagini recente » Cod sursa (job #1417634) | Cod sursa (job #716822) | Cod sursa (job #2572888) | Cod sursa (job #753423) | Cod sursa (job #1982426)
#include <fstream>
using namespace std;
ifstream fin ("pairs.in");
ofstream fout ("pairs.out");
int n, f[1000001], v[1000001], c[1000001];
int main()
{
fin >> n;
int nr;
for (int i=1; i<=n; i++)
{
fin >> nr;
f[nr] ++;
}
fin.close();
for (int i=1; i<=1000001; i++)
for (int j=1; j*i <=1000001; j++)
v[i] += f[j*i];
for (int i=2; i<=1000001; i++)
if (c[i] == 0)
for (int j=1; j*i<=1000001; j++)
if (j % i != 0)
c[j*i] ++;
else c[j*i] = -1;
int res = 0;
for (int i=1; i<=1000001; i++){
if (c[i] % 2 == 1 && c[i] > 0)
res = res + v[i]*(v[i]-1)/2;
if (c[i] % 2 == 0 && c[i] > 0)
res = res + v[i]*(v[i]-1)/2;
}
fout << n*(n-1)/2 - res;
return 0;
}