您的位置:首页 > 其它

[263] Ugly number

2015-08-20 16:52 253 查看

1. 题目描述

Write a program to check whether a given number is an ugly number.

Ugly numbers are positive numbers whose prime factors only include 2, 3, 5.

For example, 6, 8 are ugly while 14 is not ugly since it includes another prime factor 7.

Note that 1 is typically treated as an ugly number.

Ugly number代表能且只能被2,3,5整除的正整数,也就是说这个数是任一个2,3,5相乘得到的结果。

2. 解决方案

根据题目描述可以看出只要将这个数一直对2,3,5三个数做除法直到不能整除时考察结果是否为1即可,下面给出实现。

3. Code

class Solution {
public:
bool isUgly(int num) {
if(num <= 0)  // 判定是否满足正整数
return false;
else
{
bool flag = false;
// 使num一直对2,3,5做除法直到无法整除
do
{
flag = false;
if(num%2 == 0){  // num整除2
num/=2;
flag = true;
}
if(num%3 == 0){  // num整除3
num/=3;
flag = true;
}
if(num%5 == 0){  // num整除5
num/=5;
flag = true;
}
}while(flag);
if(num == 1)  // 若能完全被2,3,5整出则结果为1
return true;
return false;
}

}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: