263. 丑数

根据丑数的定义,0 和负整数一定不是丑数。

(n>0) 时,若 (n) 是丑数,则 (n) 可以写成 (n = 2^a imes 3^b imes 5^c)
的形式,其中 (a,b,c) 都是非负整数。特别地,当 (a,b,c) 都是 (0) 时,(n=1)

为判断 (n) 是否满足上述形式,可以对 (n) 反复除以 (2,3,5),直到 (n) 不再包含质因数 (2,3,5)。若剩下的数等于 (1),则说明 (n) 不包含其他质因数,是丑数;否则,说明 (n) 包含其他质因数,不是丑数。

class Solution {
public:
    bool isUgly(int n) {
        if(n <= 0) return false;
        vector<int> factors = {2, 3, 5};
        for(int factor : factors)
            while(n % factor == 0)
                n /= factor;
        return n == 1;
    }
};
原文地址:https://www.cnblogs.com/fxh0707/p/14887052.html