文章目录
- 一【题目类别】
 - 二【题目难度】
 - 三【题目编号】
 - 四【题目描述】
 - 五【题目示例】
 - 六【解题思路】
 - 七【题目提示】
 - 八【时间频度】
 - 九【代码实现】
 - 十【提交结果】
 
 
一【题目类别】
 
 
二【题目难度】
 
 
三【题目编号】
 
 
四【题目描述】
 
- 丑数 就是只包含质因数 2、3 和 5 的正整数。
 - 给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。
 
 
五【题目示例】
 
-  
示例 1:
   -  
示例 2:
 - 输入:n = 1
 - 输出:true 
- 解释:1 没有质因数,因此它的全部质因数是 {2, 3, 5} 的空集。习惯上将其视作第一个丑数。
 
  
  -  
示例 3:
 - 输入:n = 14
 - 输出:false 
- 解释:14 不是丑数,因为它包含了另外一个质因数 7 。
 
  
  
 
六【解题思路】
 
- 根据题目的定义,丑数只包含2、3和5质因数,形式为:n=2a×3b×5cn=2^{a} × 3^{b} ×5^{c}n=2a×3b×5c,所以我们只需要不停的除以2、3和5,如果最后的结果为1,说明此数字的质因数没有其他数字,就是丑数,否则就不是丑数
 - 还要注意负数和0不是丑数,要特判一下
 - 最后返回结果即可
 
 
七【题目提示】
 
- −231<=n<=231−1-2^{31} <= n <= 2^{31} - 1−231<=n<=231−1
 
 
八【时间频度】
 
- 时间复杂度:O(logn)O(logn)O(logn),其中nnn为传入参数的大小
 - 空间复杂度:O(1)O(1)O(1)
 
 
九【代码实现】
 
- Java语言版
 
 
class Solution {public boolean isUgly(int n) {if(n <= 0){return false;}while(n % 2 == 0){n /= 2;}while(n % 3 == 0){n /= 3;}while(n % 5 == 0){n /= 5;}return n == 1;}
}
 
- C语言版
 
 
bool isUgly(int n)
{if(n <= 0){return false;}while(n % 2 == 0){n /= 2;}while(n % 3 == 0){n /= 3;}while(n % 5 == 0){n /= 5;}return n == 1;
}
 
- Python版
 
 
class Solution:def isUgly(self, n: int) -> bool:if n <= 0:return Falsewhile n % 2 == 0:n //= 2while n % 3 == 0:n //= 3while n % 5 == 0:n //= 5return n == 1
 
十【提交结果】
 
-  
Java语言版
 
  -  
C语言版
 
  -  
Python语言版
 