Pagini recente » Cod sursa (job #3188410) | Cod sursa (job #3132008) | Cod sursa (job #288143) | Cod sursa (job #2750582) | Cod sursa (job #3249121)
#include <fstream>
#include <string.h>
#include <vector>
#include <unordered_map>
#include <algorithm>
#include <cmath>
#include <deque>
using namespace std;
ifstream cin("pairs.in");
ofstream cout("pairs.out");
int n, x;
unordered_map<int, int> M;
vector<int> dp;
int maxi;
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> x;
M[x]++;
maxi = max(maxi, x);
}
dp.resize(maxi + 1);
for (int i = maxi; i >= 1; i--)
{
int s = 0;
dp[i] = M[i];
for (int j = i + i; j <= maxi; j = j + i)
{
dp[i] = dp[i] + M[j];
s = s + dp[j];
}
dp[i] = (dp[i] * (dp[i] - 1)) / 2 - s;
}
cout << dp[1];
return 0;
}