阅读 55

LeetCode 263. 丑数:题解|刷题打卡

本文正在参与掘金团队号上线活动,点击 查看大厂春招职位

一、题目描述:

原题链接

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

丑数 就是只包含质因数 2、3 和/或 5 的正整数。

示例 1:

输入:n = 6
输出:true
解释:6 = 2 × 3
复制代码

二、思路分析:

这其实是一道简单的数学题,根据丑数的定义,我们只要看某个数的质因数是不是只有 2、3、5 即可判断是不是丑数。用程序实现起来也很简单,将数 numnum 的 2、3、5 因数全部除掉,然后看得到的结果是不是 1, 如果是 1 就说明是丑数,不是那就说明还有其他的质因数,不是丑数

三、AC 代码:

class Solution {
public:
    bool isUgly(int n) {
        if (n <= 0) return false;
        while (n % 2 == 0 || n % 3 == 0 || n % 5 == 0) {
            if (n % 2 == 0) n /= 2;
            else if (n % 3 == 0) n /= 3;
            else n /= 5;
        }
        return n == 1;
    }
};
复制代码

四、总结:

在数论题中我们往往要求某数的质因数,这道题只要求我们对质因数 2、3、5 进行判断,比较简单,你能不能将任何一个数的所有质因数分解出来呢?

文章分类
代码人生
文章标签