编写一个程序判断给定的数是否为丑数。
丑数就是只包含质因数 2, 3, 5
的正整数。
示例 1:
输入: 6 输出: true 解释: 6 = 2 × 3
示例 2:
输入: 8 输出: true 解释: 8 = 2 × 2 × 2
示例 3:
输入: 14 输出: false 解释:14
不是丑数,因为它包含了另外一个质因数7
。
说明:
1
是丑数。
- 输入不会超过 32 位有符号整数的范围: [−231, 231 − 1]。
首先要清楚什么是丑数,丑数和质数是有区别的,丑数是只能丑数就是只包含质因数 2, 3, 5
的正整数。比如8可以分解成2*2*2;是丑数,14只能分解成2*7,所以不是丑数,我们可以先将一个数除以2,直到不能整除为止,再讲他除以3,直到不能整除为止,再除以5,直到不能整除为止,再判断最后一个数是否是1,如果是1,则是丑数,否则,不是丑数。
class Solution {
public boolean isUgly(int num) {
// for(int i=2;i<6&&num>0;i++){
// while(num%i==0){
// num/=i;
// }
// }
if(num>0){
while(num%2==0) {
num/=2;
}
while(num%3==0){
num/=3;
}
while(num%5==0)
{
num/=5;
}
}else return false;
return num==1;
}
}