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. For example, 6, 8 are ugly while 14 is not ugly since it includes another prime factor 7.

Example

Given num = 8 return true

Given num = 14 return false

Solution

丑数的定义就是按照顺序不停的除2,如果不能整除,在尝试除3,不能整除最后尝试5, 记住这个顺序

class Solution:
    # @param {int} num an integer
    # @return {boolean} true if num is an ugly number or false
    def isUgly(self, num):
        if num <= 0:
            return False
        if num == 1:
            return True  

        while num >= 2 and num % 2 == 0:
            num /= 2;  
        while num >= 3 and num % 3 == 0:
            num /= 3;  
        while num >= 5 and num % 5 == 0:
            num /= 5;  

        return num == 1

Last updated

Was this helpful?