LeetCode: 263. Ugly Number
原创
©著作权归作者所有:来自51CTO博客作者yanglingwell的原创作品,请联系作者获取转载授权,否则将追究法律责任
LeetCode: 263. Ugly Number
题目描述
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.
Example 1:
Input: 6
Output: true
Explanation: 6 = 2 × 3
Example 2:
Input: 8
Output: true
Explanation: 8 = 2 × 2 × 2
Example 3:
Input: 14
Output: false
Explanation: 14 is not ugly since it includes another prime factor 7.
Note:
-
1
is typically treated as an ugly number. - Input is within the 32-bit signed integer range:
[−2^31, 2^31 − 1]
.
解题思路 —— 递归求解
如果能 num
被 2
, 3
, 5
, 整除, 则 isUgly(num) == isUgly(num/x)
,其中 x = 2 或 3 或 5
AC 代码
class Solution {
public:
bool isUgly(int num) {
if(num == 1)
{
return true;
}
else if(num == 0)
{
return false;
}
else if(num % 2 == 0)
{
return isUgly(num/2);
}
else if(num % 5 == 0)
{
return isUgly(num/5);
}
else if(num % 3 == 0)
{
return isUgly(num/3);
}
else
{
return false;
}
}
};