# 递归+边界
# 首先建立质因数 [2,3,5] 列表,然后依次循环判断并更新,
# 最后设立边界条件,返回即可。
class Solution:
def isUgly(self, n: int) -> bool:
if n <= 0:
return False
nums = [2, 3, 5]
for i in range(len(nums)):
while n % nums[i] == 0:
n /= nums[i]
return n == 1
方法二:暴力递归
思路:直接暴力拆解所有情况,依次递归更新返回即可。
# 暴力递归
# 直接暴力拆解所有情况,依次递归更新返回即可。
class Solution:
def isUgly(self, n: int) -> bool:
if n <= 0:
return False
while n % 2 == 0:
n /= 2
while n % 3 == 0:
n /= 3
while n % 5 == 0:
n /= 5
return n == 1