1. 程式人生 > >Python實現"醜數"的一種方法

Python實現"醜數"的一種方法

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

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

Example 1:

Input: 6
Output: true
Explanation: 6 = 2 × 3

Example 2:

Input: 8
Output: true
Explanation: 8 = 2 × 2 × 2

Example 3:

Input: 14
Output: false 
Explanation: 14 is not ugly since it includes another prime factor 7.

注意:

1是醜數

輸入整數範圍為: [−231,  231 − 1].

1:不斷的整除2、3和5,直到無法整除。判斷剩下的數是否為1、2、3和5

def isUgly(self, num):
        """
        :type num: int
        :rtype: bool
        """
        if num < 1:
            return False
        while num % 2 == 0 or num % 3 == 0 or num % 5 == 0:
            if num % 2 == 0:
                num //= 2
            elif num % 3 == 0:
                num //= 3
            elif num % 5 == 0:
                num //= 5
        if num != 1 and num != 2 and num != 3 and num != 5:
            return False
        else:
            return True