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;
};

 

全部评论

相关推荐

11-04 14:10
东南大学 Java
_可乐多加冰_:去市公司包卖卡的
点赞 评论 收藏
分享
喜欢走神的孤勇者练习时长两年半:爱华,信华,等华,黑华
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务