# 原题
编写一个程序判断给定的数是否为丑数。
丑数就是只包含质因数 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]。
# 解 :
var isUgly = function (num) {
if (!num) {
return false
}
//如果为 2/3/5 的公倍数,就除以 2/3/5
while (num % 2 === 0 || num % 3 === 0 || num % 5 === 0) {
if (num % 2 === 0) {
num = num / 2
}
if (num % 3 === 0) {
num = num / 3
}
if (num % 5 === 0) {
num = num / 5
}
}
//跳出 while 后,这个数已不能整除 2/3/5 ,所以可以判断这个数是否是 2/3/5 是则为丑数,不是则不为
if (num === 1) {
return true
}
if (num !== 2 || num !== 3 || num !== 5) {
return false
}
return true
};
← 258-各位相加2 268-缺失的数字2 →