码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode--263--丑数

时间:2018-09-22 23:16:15      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:etc   div   输入   就是   obj   round   说明   超过   nbsp   

问题描述:

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

丑数就是只包含质因数 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--丑数

标签:etc   div   输入   就是   obj   round   说明   超过   nbsp   

原文地址:https://www.cnblogs.com/NPC-assange/p/9690775.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!