Problem
Given two positive integers n
and k
.
A factor of an integer n
is defined as an integer i
where n % i == 0
.
Consider a list of all factors of n
sorted in ascending order, return the kth
factor in this list or return -1 if n
has less than k
factors.
Example 1:
1 | Input: n = 12, k = 3 |
Example 2:
1 | Input: n = 7, k = 2 |
Example 3:
1 | Input: n = 4, k = 4 |
Example 4:
1 | Input: n = 1, k = 1 |
Example 5:
1 | Input: n = 1000, k = 3 |
Constraints:
1 <= k <= n <= 1000
Analysis
这道题比较简单,要求返回数字n
的第k
个因子(从小到大排列)。思路也非常直接,因为n
的因子的范围必定是$[1, n]$,所以在这个区间内遍历,找到因子后存入数组,最后选取第k
个就可以了。
在上面的思路的基础上可以简单做些优化。比如我们不需要把所有的因子都存下来,我们只需要计录下当前是第几个因子即可。
Solution
无
Code
1 | class Solution { |
Summary
这道题目并没有很难,在这里仅做简单总结。这道题目的分享到这里,谢谢您的支持!