问题
- 编写一个程序判断给定的数是否为丑数。
- 丑数就是只包含质因数 2, 3, 5 的正整数。
示例
- 示例1 :6
输入:6
输出:true
解释:6 = 2 × \times × 3
- 示例1 :8
输入:8
输出:true
解释:8 = 2 × \times × 2 × \times × 2
- 示例1 :14
输入:14
输出:false
解释:14 = 2 × \times × 7
说明:
- 1是丑数
- 输入不会超过 32 位有符号整数的范围: [ − 2 31 , 2 31 − 1 ] [−2^{31}, 2^{31} − 1] [−231,231−1]。
思路
递归判断
代码
class Solution:
def isUgly(self, num: int) -> bool:
if num == 0:
return False
elif num == 1:
return True
elif num % 2 == 0:
return self.isUgly(num/2)
elif num % 3 == 0:
return self.isUgly(num/3)
elif num % 5 == 0:
return self.isUgly(num/5)
else:
return False
效果
执行用时 :36 ms
内存消耗 :14 MB