我的LeetCode代码仓:https://github.com/617076674/LeetCode
原题链接:https://leetcode-cn.com/problems/ugly-number/
题目描述:
知识点:数学
思路:判断将因数2,3,5均剔除后的数是否为1
(1)首先需要判断num是否小于等于0,如果num小于等于0,直接返回false。
(2)接着,将num中的因数2、3、5一个个剃去,如果留下的是1,说明num的因数中只含有2、3、5,直接返回true,否则,返回false。
时间复杂度O(num)。 空间复杂度O(1)。
JAVA代码:
public class Solution {
public boolean isUgly(int num) {
if (0 >= num) {
return false;
}
while (0 == num % 2) {
num /= 2;
}
while (0 == num % 3) {
num /= 3;
}
while (0 == num % 5) {
num /= 5;
}
if (1 == num) {
return true;
} else {
return false;
}
}
}
LeetCode解题报告: