【leetcode】263. Ugly Number

problem

263. Ugly Number

丑数

所谓丑数就是其质数因子只能是2,3,5。那么最直接的办法就是不停的除以这些质数,如果剩余的数字是1的话就是丑数了。

solution1

class Solution {
public:
    bool isUgly(int num) {
        if(num<=0) return false;//err.
        while(num%2==0) num /= 2;
        while(num%3==0) num /= 3;
        while(num%5==0) num /= 5;
        return num==1;//
        
    }
};

solution2

class Solution {
public:
    bool isUgly(int num) {
        //if(num<=0) return false;
        while(num>=2)
        {
            if(num%2==0) num /= 2;
            else if(num%3==0) num /= 3;
            else if(num%5==0) num /= 5;
            else return false;//err.
        }
        return num==1;   
        
    }
};

参考

1. Leetcode_263_Ugly Number;

猜你喜欢

转载自www.cnblogs.com/happyamyhope/p/10403029.html