leetcode:丑数

题目

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ugly-number

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

示例 1:

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

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

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

解法

  • 方法1
func isUgly(num int) bool {
    if num == 0 {
        return false
    }

    if num == 1 {
        return true
    }

    primeMap := []int{2, 3, 5}
    for _, primeValue := range primeMap {
        for {
            if num%primeValue == 0 {
                num = num / primeValue
            } else {
                break
            }
        }

        if num == 1 {
            return true
        }
    }

    return false
}
  • 方法2
func isUgly1(num int) bool {
    for num != 1 {
        if num%2 == 0 {
            num /= 2
        } else if num%3 == 0 {
            num /= 3
        } else if num%5 == 0 {
            num /= 5
        } else {
            return false
        }
    }

    return true
}

你可能感兴趣的:(leetcode:丑数)