1. 程式人生 > >LeetCode刷題記錄——第263題(醜數)

LeetCode刷題記錄——第263題(醜數)

題目描述

編寫一個程式判斷給定的數是否為醜數。

醜數就是隻包含質因數 2, 3, 5 的正整數。

示例 1:

輸入: 6
輸出: true
解釋: 6 = 2 × 3

示例 2:

輸入: 8
輸出: true
解釋: 8 = 2 × 2 × 2

示例 3:

輸入: 14
輸出: false
解釋: 14 不是醜數,因為它包含了另外一個質因數 7。

說明:
1 是醜數。
輸入不會超過 32 位有符號整數的範圍: [−231, 231 − 1]。

思路分析

  • 當num小於0的時候,不是正整數,不是醜數
  • 迴圈迭代,當num和only中的餘數為0時,除去only中的元素。當最後num的值不為1時,不是醜數。

程式碼示例

class Solution(object):
    def isUgly(self, num):
        """
        :type num: int
        :rtype: bool
        """
        if num <= 0:
            return False
        only = [2,3,5]
        for i in only:
            while num %
i == 0: num /= i if num != 1: return False else: return True