题目地址:
https://www.lintcode.com/problem/ugly-number/description
给定一个整数 n n n,如果其只有 2 , 3 , 5 2,3,5 2,3,5作为其因子,则称其为丑数。问 n n n是否是丑数。
0 0 0要特判。别的数只需除尽 2 , 3 , 5 2,3,5 2,3,5后看是否是 1 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 % 2 == 0) {
num /= 2;
}
while (num % 3 == 0) {
num /= 3;
}
while (num % 5 == 0) {
num /= 5;
}
return num == 1;
}
}
时间复杂度 O ( log n ) O(\log n) O(logn),空间 O ( 1 ) O(1) O(1)。