Problem Statement:
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: n = 6
Output: true
Explanation: 6 = 2 × 3
Example 2:
Input: n = 1
Output: true
Explanation: 1 has no prime factors, therefore all of its prime factors are limited to 2, 3, and 5.
Example 3:
Input: n = 14
Output: false
Explanation: 14 is not ugly since it includes the prime factor 7.
Constraints:
- -231 <= n <= 231 - 1
Solution:
Algorithm:
- If n is less than or equal to 0, return false.
- Divide n by 2 as many times as possible.
- Divide n by 3 as many times as possible.
- Divide n by 5 as many times as possible.
- If n is equal to 1, return true, otherwise return false.
Code:
public class Solution {
public boolean isUgly(int n) {
if (n <= 0) {
return false;
}
while (n % 2 == 0) {
n /= 2;
}
while (n % 3 == 0) {
n /= 3;
}
while (n % 5 == 0) {
n /= 5;
}
return n == 1;
}
}
Time Complexity:
O(logN)
Space Complexity:
O(1)
Top comments (0)