輸出從小到大排序的第n個僅包含因子2,3,5的數字

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來記錄下標。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章