263. Ugly Number (Easy)

https://leetcode.com/problems/ugly-number/

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. 1 is typically treated as an ugly number.
  2. Input is within the 32-bit signed integer range: [−231,  231 − 1].

Solutions

class Solution {

    public boolean isUgly(int num) {
        // ugly number are positive integers, do not forget to check the sign of given numbers
        if (num <= 0) {
            return false;
        }

        int tmp = num;

        boolean ans = true;
        while (tmp > 1) {
            if (tmp % 2 == 0) {
                tmp = tmp / 2;
                continue;
            }

            if (tmp % 3 == 0) {
                tmp = tmp / 3;
                continue;
            }

            if (tmp % 5 == 0) {
                tmp = tmp / 5;
                continue;
            }

            // the remainder is not divisible by 2, 3, 5
            // the remainder must be a prime larger than 5
            ans = false;
            break;
        }

        return ans;
    }
}

Incorrect Solutions

class Solution {

    public boolean isUgly(int num) {
        int tmp = num;

        boolean ans = true;
        while (tmp > 1) {
            if (tmp % 2 == 0) {
                tmp = tmp / 2;
                continue;
            }

            if (tmp % 3 == 0) {
                tmp = tmp / 3;
                continue;
            }

            if (tmp % 5 == 0) {
                tmp = tmp / 5;
                continue;
            }

            // the remainder is not divisible by 2, 3, 5
            // the remainder must be a prime larger than 5
            ans = false;
            break;
        }

        return ans;
    }
}

References

Copyright © iovi.com 2017 all right reserved,powered by GitbookLast Modification: 2020-07-03 00:26:46

results matching ""

    No results matching ""