P41 丑数
算法 17 阅读
信号摘要
难度:Easy · 时长:02:53 · leetcode 263 · lintcode 517
未对外公开播放权限
点击查看说明
描述
这个题目说的是,给你一个数字,你要判断它是不是一个丑数。丑数的定义是质因数只包含 2,3,5 的正整数。另外,1 作为特例,也定义为丑数。
比如说给你的数字是 45,45 做质因数分解,可以写成:45 = 3 x 3 x 5
不包含 2,3,5 以外的质因数,因此它是一个丑数。
再比如说 42,它做质因数分解得到:
42 = 2 x 3 x 7
7 不在 2,3,5 中,因此 42 不是丑数。
代码
public class AlgoCasts {
// Time: O(m+n+l), Space: O(1)
public boolean isUglyNumber(int num) {
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;
}
}