问题描述
写一个程序来检测一个整数是不是丑数。
丑数的定义是,只包含质因子 2, 3, 5 的正整数。比如 6, 8 就是丑数,但是 14 不是丑数以为他包含了质因子 7。
样例
给出 num = 8,返回 true。
给出 num = 14,返回 false。
求解
依次把因子 2, 3, 5除尽即可
class Solution
{
public:
bool isUgly(int num)
{
if (num < 1)
{
return false;
}
for (const auto n : {2, 3, 5})
{
while (num % n == 0)
{
num /= n;
}
}
return n == 1;
}
};