原題
寫一個程序來檢測一個整數(shù)是不是丑數(shù)。
丑數(shù)的定義是,只包含質(zhì)因子 2, 3, 5的正整數(shù)。比如 6, 8 就是丑數(shù),但是 14 不是丑數(shù)以為他包含了質(zhì)因子 7。
注意事項
可以認為 1 是一個特殊的丑數(shù)。
樣例
給出 num = 8,返回 true。
給出 num = 14,返回 false。
解題思路
- 由于本題只需要判斷num是不是丑數(shù),根據(jù)丑數(shù)的定義:
- 如果num對2取模等于0,則num除以2
- 如果num對3取模等于0,則num除以3
- 如果num對5取模等于0,則num除以5
- 如果最后num等于1則是丑數(shù),否則不是
完整代碼
class Solution(object):
def isUgly(self, num):
"""
:type num: int
:rtype: bool
"""
if num < 1:
return False
else:
while num % 2 == 0:
num /= 2
while num % 3 == 0:
num /= 3
while num % 5 == 0:
num /= 5
return num == 1