[CF 1043F] Make It One
Description
给定 \(n\) 个正整数 \(a_i\),最少选出多少个 \(a_i\) 使得他们 \(gcd\) 为 \(1\)?\(n,a_i\le 3\times 10^5\)。
Solution
设 \(f[i][j]\) 表示取出 \(i\) 个数、\(gcd\) 为 \(j\) 的方案数,\(cnt[i]\) 表示有多少个数有 \(i\) 这个约数。有:
\[f[i][j] = \binom{cnt[j]}{i}-f[i][j*k](k\ge 2)
\]
Code