刷题笔记-263. 丑数

92 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第14天,点击查看活动详情

一、题目描述:

263. 丑数 - 力扣(LeetCode)

给你一个整数 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

四、总结:

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

感觉很简单的一道题,但是我水平有点不太够,做了很长时间分享一下我的思路吧

题目说了质因子只有2,3,5那么只要能整除2或3或者5,那就除以该能整除的数字,最后如果是丑数一定可以让n除到1,不是丑数将不能得到1.

五、参考:

不断整除2,3,5,直到不能整除为止,判断整除后的数是否为1 - 丑数 - 力扣(LeetCode)

C语言 递归判断 : 丑数 = 丑数 * 质因子 | 质因子 * 质因子 - 丑数 - 力扣(LeetCode)

C语言 递归判断 : 丑数 = 丑数 * 质因子 | 质因子 * 质因子 - 丑数 - 力扣(LeetCode)