Try   HackMD

【LeetCode】 263. Ugly Number

Description

Write a program to check whether a given number is an ugly number.

Ugly numbers are positive numbers whose prime factors only include 2, 3, 5.

Note:

  • 1 is typically treated as an ugly number.
  • Input is within the 32-bit signed integer range: [−2^31, 2^31 − 1].

寫一個程式去確認給予的數字是否為醜數。

醜數是指一個正整數它的質因數只有包含235

注意:

  • 1是一個醜數。
  • 輸入數字是32位元的有號整數,其範圍為[−2^31, 2^31 − 1]

Example:

Example 1:

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

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

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

Solution

  • %(modulo)去判斷是否可以整除。
  • while去不停地除。
  • 記得判斷是否為整數。

Code

class Solution { public: bool isUgly(int num) { if(num <= 0) return false; while(!(num % 2)) num /= 2; while(!(num % 3)) num /= 3; while(!(num % 5)) num /= 5; return num == 1; } };
tags: LeetCode C++