intmain(){ LinearSieve::run(); while (scanf("%d", &n) != EOF) { memset(h, 0, sizeof h); int maxNum = -1; for (int i = 1; i <= n; ++i) scanf("%d", a + i), ++h[a[i]], maxNum = max(maxNum, a[i]); LL ans = 0; for (int t = 1; t <= maxNum; ++t) { LL sum = 0; for (int u = t; u <= maxNum; u += t) { sum += h[u]; } ans += LinearSieve::mu[t] * getComb(sum); } printf("%lld\n", ans); } return0; }