LeetCode 263 [Ugly Number]

作者: Jason_Yuan | 来源:发表于2016-06-27 13:32 被阅读46次

    原题

    写一个程序来检测一个整数是不是丑数。
    丑数的定义是,只包含质因子 2, 3, 5的正整数。比如 6, 8 就是丑数,但是 14 不是丑数以为他包含了质因子 7。
    注意事项
    可以认为 1 是一个特殊的丑数。

    样例
    给出 num = 8,返回 true。
    给出 num = 14,返回 false。

    解题思路

    • 由于本题只需要判断num是不是丑数,根据丑数的定义:
    • 如果num对2取模等于0,则num除以2
    • 如果num对3取模等于0,则num除以3
    • 如果num对5取模等于0,则num除以5
    • 如果最后num等于1则是丑数,否则不是

    完整代码

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

    相关文章

      网友评论

        本文标题:LeetCode 263 [Ugly Number]

        本文链接:https://www.haomeiwen.com/subject/inpzdttx.html