【刷题笔记】263. 丑数

110 阅读1分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

一、题目描述:

263. 丑数

给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false

丑数 就是只包含质因数 23/或 5 的正整数。

 

示例 1:

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

示例 2:

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

示例 3:

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

示例 4:

输入:n = 1
输出:true
解释:1 通常被视为丑数。

提示:

  • -2^31 <= n <= 2^31 - 1

二、思路分析:

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

故判断一个数是不是丑数,只需将2、3、5整除并更新它即可,直到不能被某一个2、3、5整除;

最后的结果如果是1则是丑数

三、AC 代码:

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

四、总结:

这是一道简单的丑数题目,当然我们还可以使用递归和迭代法解决,后面还有类似的题目,到时候再一起总结。

五、参考:

263. 丑数(数学、递归、迭代) - 丑数 - 力扣(LeetCode) (leetcode-cn.com)

【题以类解】一文带你刷三道丑数题目,简单易懂,双百效果好~ - 丑数 - 力扣(LeetCode) (leetcode-cn.com)