Cod sursa(job #3258513)
| Utilizator | Data | 22 noiembrie 2024 22:59:45 | |
|---|---|---|---|
| Problema | Pairs | Scor | 50 |
| Compilator | cpp-64 | Status | done |
| Runda | cex_3 | Marime | 0.6 kb |
#include <fstream>
#include <vector>
using namespace std;
ifstream f("pairs.in");
ofstream g("pairs.out");
const int nmax = 1000005;
int fr[nmax], maxi, n, ans[nmax];
int main()
{
f >> n;
for(int i = 1; i <= n; i ++)
{
int x; f >> x;
fr[x] ++; maxi = max(maxi, x);
}
for(int i = maxi; i >= 1; i --)
{
for(int j = i; j <= maxi; j += i)
ans[i] += fr[j];
ans[i] = (ans[i] + 1) * ans[i] / 2;
for(int j = 2 * i; j <= maxi; j += i)
ans[i] -= ans[j];
}
g << ans[1];
return 0;
}
