Pagini recente » Cod sursa (job #133029) | Cod sursa (job #781137) | Cod sursa (job #135030) | Cod sursa (job #2895274) | Cod sursa (job #3306547)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("pairs.in");
ofstream fout("pairs.out");
const int NMAX = 100001;
int n;
int v[NMAX];
int cnt[1000001];
int main()
{
fin >> n;
int vmax = -1;
for(int i = 1; i <= n; i++)
{
fin >> v[i];
vmax = max(vmax, v[i]);
}
for(int i = 1; i <= vmax; i++)
{
for(int j = 1; j <= n; j++)
{
if(v[j] % i == 0)
{
cnt[i]++;
}
}
// cout << i << ": " << cnt[i] << "\n";
}
int dp[vmax + 1];
for(int d = vmax; d >= 1; d--)
{
long long int total = cnt[d] * (cnt[d] - 1) / 2;
for(int i = 2 * d; i <= vmax; i += d)
{
total -= dp[i];
}
dp[d] = total;
}
fout << dp[1];
return 0;
}