import numpy as np
def FindnthNumber(n):
idx2 = 0
idx3 = 0
idx5 = 0
counter = 1
number_list = [1]
while(counter<n):
_min = np.min(np.array([number_list[idx2]*2, number_list[idx3]*3, number_list[idx5]*5]))
if (_min==number_list[idx2]*2):
idx2+=1
if (_min==number_list[idx3]*3):
idx3+=1
if (_min==number_list[idx5]*5):
idx5+=1
number_list.append(_min)
counter+=1
return number_list
if __name__=='__main__':
number_list=FindnthNumber(10)
idx2,3,5的含義是,當前列表中的數,乘過2,3,5的次數,列表中沒乘過的數都要分別乘一下來找出最小的,所以用這3個idx來記錄下標。