LeetCode--263--丑数

Posted Assange

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode--263--丑数相关的知识,希望对你有一定的参考价值。

问题描述:

编写一个程序判断给定的数是否为丑数。

丑数就是只包含质因数 2, 3, 5 的正整数

示例 1:

输入: 6
输出: true
解释: 6 = 2 × 3

示例 2:

输入: 8
输出: true
解释: 8 = 2 × 2 × 2

示例 3:

输入: 14
输出: false 
解释: 14 不是丑数,因为它包含了另外一个质因数 7

说明:

  1. 1 是丑数。
  2. 输入不会超过 32 位有符号整数的范围: [?231,  231 ? 1]。

思路:用num对三个质数做除法运算,到最后能整除即为丑数。

方法1:

 1 class Solution(object):
 2     def isUgly(self, num):
 3         """
 4         :type num: int
 5         :rtype: bool
 6         """
 7         prime = [2,3,5]
 8         if num == 0 :
 9             return False
10         temp = num
11         flag = True
12         while num!= 1:#num对三个质数进行求余数运算
13             for i in prime:
14                 if num % i == 0:
15                     num /= i 
16                     flag = True
17             if not flag:#三个质数都不能被整除
18                 break
19             flag = False
20         if num == 1:
21             return True
22         return False

简洁版:

 1 class Solution(object):
 2     def isUgly(self, num):
 3         """
 4         :type num: int
 5         :rtype: bool
 6         """
 7         if num <= 0:
 8             return False
 9         for i in [2,3,5]:
10             while num % i == 0:
11                 num //= i
12         return True if num == 1 else False

2018-09-22 18:15:12

以上是关于LeetCode--263--丑数的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode:263

数字与数学5:丑数

数字与数学5:丑数

《算法零基础》第9讲:算术基本定理

leetcode 263: Ugly Number

LeetCode263——Ugly Number