[LeetCode 解題筆記] Ugly Number

原題目網址:263. Ugly Number

題目描述

給定整數 n ,如果 n 是 ugly number 的話就 return true

Ugly number 的定義:其質因數只包括 2 、3 或 5,且為正整數

解題思路

這一題沒什麼難度,但必須為正整數才算是 Ugly number 這一點很容易讓人忽略。

以下為用 C 語言實作的程式碼:

bool isUgly(int n){
  if (n <= 0) {
    return false;
  }

  while (true) {
    if (n % 2 == 0) {
      n = n / 2;
    } else if (n % 3 == 0) {
      n = n / 3;
    } else if (n % 5 == 0) {
      n = n / 5;
    } else {
      break;
    }
  }
  return n == 1 || n == -1;
}
Show Comments