问题链接:https://leetcode.com/problems/ugly-number/?tab=Description
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
. For example, 6, 8
are ugly while 14
is not ugly since it includes another prime factor 7
.
Note that 1
is typically treated as an ugly number.
丑数可以表示为有限个2、3、5的乘积,1也是个丑数。
public class Solution {
public boolean isUgly(int num) {
if(num<=0) return false;
while(num%2==0) num/=2;
while(num%3==0) num/=3;
while(num%5==0) num/=5;
if(num==1)
return true;
else
return false;
}
}
clean solution to greatest divide the num using 2, 3, and 5.
public class Solution {
public static boolean isUgly(int num) {
if (num <= 0) {
return false;
}
int[] divisors = {2, 3, 5};
for(int d : divisors) {
while (num % d == 0) {
num /= d;
}
}
return num == 1;
}
}