丑数
概述:丑数 就是只包含质因数 2、3 和 5 的正整数。给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。
输入:n = 6
输出:true
输入:n = 1
输出:true
输入:n = 14
输出:false
方法一:递归+边界
思路:首先建立质因数 [2,3,5] 列表,然后依次循环判断并更新,最后设立边界条件,返回即可。
# 递归+边界
# 首先建立质因数 [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
总结
能除则除,不能除就判断后再返回。