写一个程序判断给定的整数是否为丑数
丑数就是只包含质因数 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/