题目
来源:力扣(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
}