学校に戻る:質問6-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