Leetcode 263. Ugly Number

關關的刷題日記發表於2018-01-09

題目要求判斷一個數是否是醜數。醜數是指素數因子只有2, 3, 5的數。比如說6, 8就是醜數,但是14就不是醜數,因為14的素數因子有7.

 

只要給定的數可以被2, 3, 5整除,我們就不斷用給定的數去除以2, 3, 5,直到最後得到1就說明這個數的所有素數因子只有2, 3, 5,是醜數,反之不是醜數。需要特別注意的是,0不是醜數,因為除了2, 3, 5以外的其他素數也可以看作是0的約數。

class Solution {
public:
    bool isUgly(int num) {
    for(int i=2; i<6 && i<=num; ++i)
    {
        while(num%i==0)
            num/=i;
    }
    return num==1;
    }
};


相關文章