263Ugly Number醜數
阿新 • • 發佈:2018-12-17
編寫一個程式判斷給定的數是否為醜數。
醜數就是隻包含質因數 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的乘積,因為所有的正整數都能分解成1與一個或多個素數的乘積。如果一個數是醜數,那麼反覆除以2、3、5後,一定會是1;如果一個數不是醜數,那麼反覆除以2、3、5後,一定還會剩下了一個質數無法被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; } if(num == 1) return true; return false; } };