问题描述
写一个程序来检测一个整数是不是丑数。
丑数的定义是,只包含质因子 2, 3, 5 的正整数。比如 6, 8 就是丑数,但是 14 不是丑数因为他包含了质因子 7。
样例
样例1:
输入: num = 8
输出: true
解释:
8=2*2*2
样例2:
输入: num = 14
输出: false
解释:
14=2*7
解题思路
这道题比较简单,检测下是否只包含质因子 2, 3, 5。
写一个循环,不停地用2或3或5对这个整数就行整除,如果最后结果为1,这个数就是丑数;如果中间不是1且不能再整除了,那么这个数不是丑数。
代码示例
public class Solution {
/**
* @param num: An integer
* @return: true if num is an ugly number or false
*/
public boolean isUgly(int num) {
// write your code here
if (num <= 0) {
return false;
}
while (num != 1) {
if (num % 2 == 0) {
num = num / 2;
} else if (num % 3 == 0) {
num = num / 3;
} else if (num % 5 == 0) {
num = num / 5;
} else{
return false;
}
}
return true;
}
}
网友评论