Pagini recente » Cod sursa (job #1472607) | Cod sursa (job #3181799) | Cod sursa (job #1158752) | Cod sursa (job #2852729) | Cod sursa (job #2676730)
#include <bits/stdc++.h>
#define ll long long
#define LMAX 100005
using namespace std;
ifstream fin("pairs.in");
ofstream fout("pairs.out");
ll n, perechi, v[LMAX], fv[LMAX], fv2[LMAX];
std::vector<ll> prim;
void ciur() {
for (ll i = 2; i * i <= LMAX; i += 2) {
if (fv[i])
continue;
prim.push_back(i);
for (ll j = i * i; j <= LMAX; j += i)
fv[j] = 1;
if (i == 2)
--i;
}
return;
}
int main() {
ciur();
fin >> n;
for (int i = 1; i <= n; ++i) {
fin >> v[i];
for (int j = 0; j < prim.size() && prim[j] <= v[i]; ++j) {
if (v[i] % prim[j] != 0)
continue;
perechi += fv2[prim[j]];
++fv2[prim[j]];
}
}
fout << perechi;
return 0;
}