263. 丑数|刷题打卡

91 阅读1分钟

一、题目描述:

263. 丑数
编写一个程序判断给定的数是否为丑数。
丑数就是只包含质因数 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,如果是1就是丑数,否则不是。

  1. 如果 n 小于 0 则直接返回
  2. 挨个判断 n 能否整除 2,3,5
  3. 如果能那么 n = n / 2 或 3 或 5
  4. 直到 n == 1 是返回 true

三、AC 代码:

/**
 * @param {number} n
 * @return {boolean}
 */
var isUgly = function(n) {
    if (n < 1) return false
    while(n > 1) {
        if (n % 2 === 0) {
            n = n / 2
            continue
        }
        if (n % 3 === 0) {
            n = n / 3
            continue
        }
        if (n % 5 === 0) {
            n = n / 5
            continue
        }
        return false
    }
    return true
};

四、总结:

263. 丑数.png 本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情