tag: python3 、 数学
编写一个程序判断给定的数是否为丑数。
丑数就是只包含质因数 2, 3, 5
的正整数。
输入: 6
输出: true
解释: 6 = 2 × 3
输入: 8
输出: true
解释: 8 = 2 × 2 × 2
输入: 14
输出: false
解释: 14 不是丑数,因为它包含了另外一个质因数 7。
说明:
-
1
是丑数。 -
输入不会超过
32
位有符号整数的范围:[−2^31, 2^31 − 1]
。
很简单的题,只要将 num
不停地除 2, 3, 5
直到不能再整除为止,最后剩下来的数为 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
return num == 1
最终结果,运行时间40ms,超过43.39%;占用内存13.4MB,超过14.96%。竟然连一半都没有达到,难道有更快速的方法,前去一看发现在前面20ms的解法甚至代码都和我一摸一样,那应该是样例产生过变动或是其他因素产生的影响了,难道是我没有充会员。