Ugly Number
An ugly number is a positive integer whose prime factors are limited to 2, 3, and 5. Given an integer n, return true if n is an ugly number.
Example 1
Input: 6 → Output: true (6 = 2 * 3)
Example 2
Input: 14 → Output: false (14 = 2 * 7)
Solution Approach
Divide out all factors of 2, 3, and 5. If result is 1, n is ugly.
- If n <= 0: return false.
- While n divisible by 2: n /= 2.
- While n divisible by 3: n /= 3.
- While n divisible by 5: n /= 5.
- Return n == 1.
Java
class Solution {
public boolean isUgly(int n) {
if (n <= 0) return false;
for (int f : new int[]{2,3,5}) while (n % f == 0) n /= f;
return n == 1;
}
}
- Time Complexity: O(log N)
- Space Complexity: O(1)