LeetCode263: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].

LeetCode:链接

根据定义,依次将所给的数除以 2,3,5 直至无法除尽,如果这时得到1则说明所给的数的质因子不超出2,3,5三个数,否则说明有其他质因数。

class Solution(object):
    def isUgly(self, num):
        """
        :type num: int
        :rtype: bool
        """
        if num >= 2147483647 or num <= 0:
            return False
        for i in [2,3,5]:
            while num % i == 0:
                num = num // i
            if num == 1:
                return True
        return False

猜你喜欢

转载自blog.csdn.net/mengmengdajuanjuan/article/details/84888011