# 原题

编写一个程序判断给定的数是否为丑数。

丑数就是只包含质因数 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
};
Last Updated: 4/3/2020, 6:21:54 PM