263.丑数
题目
编写一个程序判断给定的数是否为丑数。
丑数就是只包含质因数 2, 3, 5 的正整数。
示例 1:
输入: 6
输出: true
解释: 6 = 2 × 3
示例 2:
输入: 8
输出: true
解释: 8 = 2 × 2 × 2
示例 3:
输入: 14
输出: false
解释: 14 不是丑数,因为它包含了另外一个质因数 7。
说明:
1 是丑数。
输入不会超过 32 位有符号整数的范围: [−231, 231 − 1]。
【简单】
【分析】直接法和递归法都可以,直接法就是num依次整除2,3,4直到除不尽(即num%2!=0时)为止,最后判断若最后num==1,说明是丑数;否则不是。递归法和直接法其实类似。
class Solution:
def isUgly(self, num: int) -> bool:
if num==0:
return False
while num%2==0:
num/=2
while num%3==0:
num/=3
while num%5==0:
num/=5
if num==1:
return True
else:
return False
注意在python中运算符号/和//的区别
input: 3/1.1
Out: 2.727272727272727
input: 3//1.1
Out: 2.0 #返回的是floor(3/1.1)
264.丑数II
题目
编写一个程序,找出第 n 个丑数。
丑数就是只包含质因数 2, 3, 5 的正整数。
示例:
输入: n = 10
输出: 12
解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。
说明:
1 是丑数。
n 不超过1690。
【中等】
【分析一】三指针方法
具体思路是通过前面得到的丑数乘以因数(2,3,5