丑数
问题:
给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。
丑数 就是只包含质因数 2、3 和 5 的正整数。
思路:
首先进行特殊判断。
将参数与 2,3,5取余运算,如果为 0 则立即求模。
如果最后结果为 1 则证明为丑数。
class Solution {
public:
bool isUgly(int n) {
if(n < 1) return false;
if(n < 7) return true; // 1 ~ 6 均为丑数
vector<int> arr {2, 3, 5};
for(auto& a : arr) {
while(n % a == 0) {
n /= a;
}
}
return n == 1;
}
};
- 时间复杂度:O(log(n))
- 空间复杂度:O(1)