題目連結:
題目意譯:
撰寫一個程式去判斷給定的數字是否為一個醜數。
一個醜數定義為一個質因數只包含 2 、 3 或是 5 的正整數。
注:
1 這個數字特別地定義為醜數。
輸入在 32 位元有號整數的範圍內:[-2 ^ 31, 2 ^ 31 - 1]
範例測資:
範例 1:
輸入: 6
輸出: true
解釋: 6 = 2 × 3
範例 2:
輸入: 8
輸出: true
解釋: 8 = 2 × 2 × 2
範例 3:
輸入: 14
輸出: false
解釋: 14 不是一個醜數,因為它有另一個質因數為 7。
解題思維:
將給定的數字一直除以 2 、 3 、 5 (如果除得盡的話),除到該數不是 2 、 3 或是 5 的倍數為止。然後判斷目前的數字是不是 1 。如果不是 1 ,代表原本的數字不是醜數,因為表示它有 2 、 3 、 5 以外的質因數;反之,原本的數字是一個醜數。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。