263醜い番号*

263醜い番号*

https://leetcode.com/problems/ugly-number/

タイトル説明

与えられた数は醜い数であるかどうかをチェックするプログラムを書きます。

醜い数字は、その素因数のみ含ま正の数です2, 3, 5

例1:

Input: 6
Output: true
Explanation: 6 = 2 × 3

例2:

Input: 8
Output: true
Explanation: 8 = 2 × 2 × 2

例3:

Input: 14
Output: false 
Explanation: 14 is not ugly since it includes another prime factor 7.

注意:

  • 1は、典型的には、醜い数として扱われます。
  • 入力は、32ビット符号付き整数の範囲内です。 [ - 2 31 , 2 31 1 ] [-2 ^ {31}、2 ^ {31} - 1]

C ++の実装1

アイデア:NUMが等しい場合は入力にまず最初に、次いで0符号付き整数であり、負の数は正の整数NUM国連敬意を考慮されていないが、2、3、5は割り切れる使用し続けることができ、最終的な決意が1に等しくありません。以下UN以上、等しくない場合に説明NUM常に2、3、5は、素因数です。

class Solution {
public:
    bool isUgly(int num) {
        if (num <= 0) return false;
        while (num % 2 == 0) num /= 2;
        while (num % 3 == 0) num /= 3;
        while (num % 5 == 0) num /= 5;
        return num == 1;
    }
};
公開された455元の記事 ウォンの賞賛8 ビュー20000 +

おすすめ

転載: blog.csdn.net/Eric_1993/article/details/104881338