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

算法题来自:https://leetcode-cn.com/problems/ugly-number/description/

你可能感兴趣的:(Algorithms)