263. 丑数(JavaScript)

编写一个程序判断给定的数是否为丑数。

丑数就是只包含质因数 2, 3, 5 的正整数

示例 1:

输入: 6
输出: true
解释: 6 = 2 × 3
示例 2:

输入: 8
输出: true
解释: 8 = 2 × 2 × 2
示例 3:

输入: 14
输出: false 
解释: 
14 不是丑数,因为它包含了另外一个质因数 7。

说明:

  1. 1 是丑数。
  2. 输入不会超过 32 位有符号整数的范围: [−231,  231 − 1]。

思路:

0不是丑数,1是丑数。

对于num,当num不为1时循环:

  1. 若num能整除2,则num除2,返回循环最开始,否则进行第二步
  2. 若num能整除3,则num除3,返回循环最开始,否则进行第三步
  3. 若num能整除5,则num除5,返回循环最开始,否则就返回false(因为num包含除2、3、5以外的因数)

循环结束,说明num此时等于1,返回true。

/**
 * @param {number} num
 * @return {boolean}
 */
var isUgly = function(num) {
  if (!num) return false;
  while (num !== 1) {
    if (num / 2 % 1 !== 0) {
      if (num / 3 % 1 !== 0) {
        if (num / 5 % 1 !== 0) {
          return false;
        } else num = num / 5;
      } else num = num / 3;
    } else num = num / 2;
  }
  return true;
};

 

全部评论

相关推荐

06-27 18:53
门头沟学院 Java
这样才知道自己不适合搞代码,考公去咯
只爱喝白开水:我也发现不适合搞代码,打算转非技术方向了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务