丑數(python)


題目描述

把只包含質因子2、3和5的數稱作丑數(Ugly Number)。例如6、8都是丑數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個丑數。求按從小到大的順序的第N個丑數。
 
# -*- coding:utf-8 -*-
class Solution:
    def GetUglyNumber_Solution(self, index):
        # write code here
        #如果為空則返回0
        #如果不為空則通過索引判斷是否為丑數
        if index <=0:
            return 0
        res = [1]
        index2 = index3 = index5 = 0
        for i in range(1, index):
            u2 = res[index2] * 2
            u3 = res[index3] * 3
            u5 = res[index5] * 5
            res.append(min(u2, min(u3, u5)))
            if res[i]/2 == res[index2]:
                index2 += 1
            if res[i]/3 == res[index3]:
                index3 += 1
            if res[i]/5 == res[index5]:
                index5 += 1
        return res.pop()

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM