\(t\) 组询问,求第 \(k\) 个大于 \(x\) 且与 \(p\) 互质的数。
看到第 \(k\) 大这个东西,首先想到二分答案。
令当前的二分中点为 \(m\),那么如果 \([x + 1, m]\) 中与 \(p\) 互质的数大于等于 \(k\) 个,往下缩小二分范围。否则往上缩小二分范围。
同时,求 \([x + 1, m]\) 中与 \(p\) 互质的数的数量可以前缀和转化为 \([1, m]\) 中与 \(p\) 互质的数的数量减去 \([1, x]\) 中与 \(p\) 互质的数的数量。那么现在问题就变成了:
标签:二分,Integers,List,互质,数量,CF920 From: https://www.cnblogs.com/2huk/p/18000967求 \([1, n]\) 中有多少数与 \(p\) 互质。