题目链接
英文链接:https://leetcode.com/problems/nth-magical-number/
中文链接:https://leetcode-cn.com/problems/nth-magical-number/
题目详述
如果正整数可以被 A 或 B 整除,那么它是神奇的。
返回第 N 个神奇数字。由于答案可能非常大,返回它模 10^9 + 7 的结果。
示例 1:
1 | 输入:N = 1, A = 2, B = 3 |
示例 2:
1 | 输入:N = 4, A = 2, B = 3 |
示例 3:
1 | 输入:N = 5, A = 2, B = 4 |
示例 4:
1 | 输入:N = 3, A = 6, B = 4 |
提示:
- 1 <= N <= 10^9
- 2 <= A <= 40000
- 2 <= B <= 40000
题目详解
- 直接二分结果
i
,统计[1, i]
有多少个数是 A 的倍数或者 B 的倍数。 - 问题的关键字在于求出这个数目,为
i / A + i / B + i / lcm
,其中lcm
是 A 与 B 的最小公倍数。
1 | public class LeetCode_00878 { |