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来记录下标。