开学回归力扣:第六题——263. 丑数(整除问题)

263. 丑数

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

丑数就是只包含质因数 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]。

题解:

利用数学特性即可,即其质因数只包含2,3,5,因此我们可以通过对给定的数进行不断的在不得到小数的情况下除以其能除的最多的2,3,5,最后判断其最后是否为1即可。判断其除以2,3,5之后是否为整数而不为小数可以使用%运算符来判断是否整除,因为有小数时即一定不是整除。

代码:

bool isUgly(int num){
    
    
    if(num==0)
    {
    
    
        return 0;
    }
    while(num!=1)
    {
    
    
        if(num%2==0)//如果能被2整除,那么整除一次
        {
    
    
            num=num/2;
            continue;
        }
        else if(num%3==0)//同理
        {
    
    
            num=num/3;
            continue;
        }
        else if(num%5==0)//同理
        {
    
    
            num=num/5;
            continue;
        }
        else//判断最后是否能得到1
        {
    
    
            return 0;
        }
    }
    return 1;
}

猜你喜欢

转载自blog.csdn.net/xiangguang_fight/article/details/114413204