[ABC215D] Coprime 2

发布时间 2023-08-15 19:10:42作者: -白简-

题目大意

给定一个长度为 \(n\) 的数列 \(a\),要求出 \(1 \sim m\) 中与 \(a\) 中的所有元素互质的数。
数据范围:\(1\ \leq\ n,m\ \leq\ 10^5,1\ \leq\ a_i\ \leq\ 10^5\)

思路

模拟赛加强了数据,卡了 \(\mathcal{O}(n \sqrt{n})\),于是来写一个 \(\mathcal{O}(n \log n)\) 的。

考虑互质是什么意思,是指两个数只有一个共同因数 \(1\)。那么如果两个数有除 \(1\) 以外的共同因数,二者不互质。

所以我们可以枚举因数,若其倍数是 \(a\) 中的元素,就可以标记我们枚举的这个因数的所有倍数都是不合法的,然后可以标记。

没标记的数都是合法的,到时候直接计数输出就行了。