版权声明:本文为博主原创文章,未经博主允许不得转载。有事联系:[email protected] https://blog.csdn.net/qq_17550379/article/details/88838441
编写一个程序判断给定的数是否为丑数。
丑数就是只包含质因数 2, 3, 5
的正整数。
示例 1:
输入: 6
输出: true
解释: 6 = 2 × 3
示例 2:
输入: 8
输出: true
解释: 8 = 2 × 2 × 2
示例 3:
输入: 14
输出: false
解释: 14 不是丑数,因为它包含了另外一个质因数 7。
说明:
1
是丑数。- 输入不会超过 32 位有符号整数的范围: 。
解题思路
这个问题非常简单,我们对于[2,3,5]
取摸,看余数是不是0
,如果是0
的话,我们就输入的数num//[2,3,5]
即可。如果最后num==1
,那么我们返回True
,否则返回False
。
接着还需要考虑边界问题,当num == 0
的时候,我们返回False
。
class Solution:
def isUgly(self, num: int) -> bool:
if num == 0:
return False
for i in [2,3,5]:
while num%i == 0:
num //= i
if num == 1:
return True
return False
写得更加简洁的话
class Solution:
def isUgly(self, num: int) -> bool:
for p in [2, 3, 5]:
while num and num%p == 0:
num //= p
return num == 1
我将该问题的其他语言版本添加到了我的GitHub Leetcode
如有问题,希望大家指出!!!