難度:簡單
丑數?就是只包含質因數?
2
、3
?和?5
?的?正?整數。給你一個整數?
n
?,請你判斷?n
?是否為?丑數?。如果是,返回?true
?;否則,返回?false
?。示例 1:
輸入:n = 6 輸出:true 解釋:6 = 2 × 3示例 2:
輸入:n = 1 輸出:true 解釋:1 沒有質因數。示例 3:
輸入:n = 14 輸出:false 解釋:14 不是丑數,因為它包含了另外一個質因數7。提示:
-231 <= n <= 231 - 1
題解:
class Solution:def isUgly(self, n: int) -> bool:# 1?? 首先檢查:丑數必須是正整數if n <= 0:return False# 2?? 先把所有 "2" 因子剝干凈(就像剝洋蔥)while n % 2 == 0: # 只要能被2整除...n //= 2 # 就除一次2(剝掉一層)# 例如:n=8 → 8→4→2→1 (最后n=1)# 3?? 再把所有 "3" 因子剝干凈while n % 3 == 0: # 只要能被3整除...n //= 3 # 就除一次3# 例如:n=9 → 9→3→1 (最后n=1)# 4?? 最后把所有 "5" 因子剝干凈while n % 5 == 0: # 只要能被5整除...n //= 5 # 就除一次5# 例如:n=25 → 25→5→1 (最后n=1)# 5?? 檢查結果:如果剝到只剩1就是丑數return n == 1 # ? 如果n=1返回True,否則返回False