Ugly Number

easy math

Problem

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.

Inputn = 6
Outputtrue
6 = 2 × 3. Only primes 2, 3, 5 — ugly.

def is_ugly(n):
    if n <= 0: return False
    for p in (2, 3, 5):
        while n % p == 0:
            n //= p
    return n == 1
function isUgly(n) {
  if (n <= 0) return false;
  for (const p of [2, 3, 5]) {
    while (n % p === 0) n = n / p;
  }
  return n === 1;
}
class Solution {
    public boolean isUgly(int n) {
        if (n <= 0) return false;
        for (int p : new int[]{2, 3, 5})
            while (n % p == 0) n /= p;
        return n == 1;
    }
}
bool isUgly(int n) {
    if (n <= 0) return false;
    for (int p : {2, 3, 5})
        while (n % p == 0) n /= p;
    return n == 1;
}
Time: O(log n) Space: O(1)