编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数 2, 3, 5
的正整数。
说明:
1
是丑数。- 输入不会超过 32 位有符号整数的范围: [−231, 231 − 1]。
示例 1:
输入: 6 输出: true 解释: 6 = 2 × 3
示例 2:
输入: 8 输出: true 解释: 8 = 2 × 2 × 2
示例 3:
输入: 14 输出: false 解释: 14不是丑数,因为它包含了另外一个质因数 7。
class Solution {
public:
bool isUgly(int num) {
int flag;
if(num==1)
return 1;
else if(num<=0)
return 0;
//大于1的正整数进入循环
while(num>1){
flag=3;
if(num%5==0)
{
num=num/5;
flag--;
}
if(num%3==0)
{
num=num/3;
flag--;
}
if(num%2==0)
{
num=num/2;
flag--;
}
if(flag==3) //发现此次循环num大于1且235均不能整除
break;
}
if(flag==3)
return 0;
else
return 1;
}
};