Skip to content

Latest commit

 

History

History
93 lines (78 loc) · 2 KB

263. Ugly Number.md

File metadata and controls

93 lines (78 loc) · 2 KB

leetcode Daily Challenge on November 18th, 2022.


Difficulty : Easy

Related Topics : Math


similar as leetcode Daily Challenge on July 4th, 2020. ---- 264. Ugly Number II


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.

Example 1:

Input: 6
Output: true
Explanation: 6 = 2 × 3

Example 2:

Input: 8
Output: true
Explanation: 8 = 2 × 2 × 2

Example 3:

Input: 14
Output: false
Explanation: 14 is not ugly since it includes another prime factor 7.

Note:

  • 1 is typically treated as an ugly number.
  • Input is within the 32-bit signed integer range: [−2^31, 2^31 − 1].

Solution

  • mine
    • Java
      • Runtime: 2 ms, faster than 34.40%, Memory Usage: 36.4 MB, less than 86.82% of Java online submissions
        // O(C)time   C is the count of factors
        // O(1)space
        public boolean isUgly(int num) {
            if(num <= 0){
                return false;
            }
            while(num % 2 == 0 || num % 3 == 0 || num % 5 == 0){
                if(num % 2 == 0){
                    num /= 2;
                }
                if(num % 3 == 0){
                    num /= 3;
                }
                if(num % 5 == 0){
                    num /= 5;
                }
            }
            return num == 1;
        }
        

  • the most votes
  • Runtime: 2 ms, faster than 34.40%, Memory Usage: 38.3 MB, less than 12.27% of Java online submissions
    // O(C)time   C is the count of factors
    // O(1)space
    public boolean isUgly(int num) {
        for (int i=2; i<6 && num>0; i++)
            while (num % i == 0)
                num /= i;
        return num == 1;
    }