有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。
示例 1:
输入: k = 5
输出: 9
来源:力扣(LeetCode)
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution:
def getKthMagicNumber(self, k):
import heapq
nums = [1,3,5,7]
s,result = set(),1
my_list = []
heapq.heapify(my_list)
heapq.heappush(my_list, 1)
for _ in range(k+1):
result = heapq.heappop(my_list)
for i in nums:
temp = result * i
if temp not in s:
s.add(temp)
heapq.heappush(my_list, temp)
return result
def test_getKthMagicNumber():
s = Solution()
assert s.getKthMagicNumber(5) == 9