Day.11 Ugly Number(263)

作者: 前端伊始 | 来源:发表于2017-11-13 21:53 被阅读0次

    问题描述
    Write a program to check whether a given number is an ugly number.
    Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 6, 8 are ugly while 14 is not ugly since it includes another prime factor 7.
    Note that 1 is typically treated as an ugly number.

    思路1:只有对2的求模不为0 ,就不停的整除2.紧接着同样对3和5。最后判断num是否为1

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

    思路2:同思路1,只是换种写法

    var isUgly = function(num) {
        if(num === 0) {
            return false;
        }
        for (var p of [2, 3, 5])
        while (num && num % p === 0)
            num /= p;
        return num == 1;
    };
    
    

    相关文章

      网友评论

        本文标题:Day.11 Ugly Number(263)

        本文链接:https://www.haomeiwen.com/subject/oqytvxtx.html