263. 丑数(JavaScript)
编写一个程序判断给定的数是否为丑数。
丑数就是只包含质因数 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]。
思路:
0不是丑数,1是丑数。
对于num,当num不为1时循环:
- 若num能整除2,则num除2,返回循环最开始,否则进行第二步
- 若num能整除3,则num除3,返回循环最开始,否则进行第三步
- 若num能整除5,则num除5,返回循环最开始,否则就返回false(因为num包含除2、3、5以外的因数)
循环结束,说明num此时等于1,返回true。
/**
* @param {number} num
* @return {boolean}
*/
var isUgly = function(num) {
if (!num) return false;
while (num !== 1) {
if (num / 2 % 1 !== 0) {
if (num / 3 % 1 !== 0) {
if (num / 5 % 1 !== 0) {
return false;
} else num = num / 5;
} else num = num / 3;
} else num = num / 2;
}
return true;
};