Skip to content

Latest commit

 

History

History
68 lines (49 loc) · 1.43 KB

0263._ugly_number.md

File metadata and controls

68 lines (49 loc) · 1.43 KB

263. Ugly Number

难度: Easy

刷题内容

原题连接

内容描述

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: [−231,  231 − 1].

解题方案

思路 1 - 时间复杂度: O(1)- 空间复杂度: O(1)******

因为其prime factors 只包括 2, 3, 5,所以比如如果能被 2 整除, n = n / 2, 直到不能被2整除,然后同样对3,5检验,如果最终结果为1,那么就是ugly number,否则不过关

注意一下边界条件,当num为0的时候,return一下False

class Solution(object):
    def isUgly(self, num):
        """
        :type num: int
        :rtype: bool
        """
        if num <= 0:
            return False
        if num <= 3:
            return True
        while num % 2 == 0:
        	num = num / 2
        while num % 3 == 0:
        	num = num / 3
        while num % 5 == 0:
        	num = num / 5
        return True if num == 1 else False