您的位置:首页 > 其它

[263]Ugly Number

2015-10-04 12:18 323 查看
【题目描述】

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.
【思路】
根据题意有几种特殊情况药注意负数、0和1.只要在被除为1之前不能被2、3、5整除就不是。

【代码】

class Solution {
public:
bool isUgly(int num) {
if(num<=0) return false;
if(num==1) return true;
while(num!=1){
if(num%2==0) num=num/2;
else if(num%3==0) num=num/3;
else if(num%5==0) num=num/5;
else return false;
}
return true;
}
};

第一个是我的思路,用时8ms,后来看到一种思路和我相同,但写的比我更简洁的,用时只要4ms,值得借鉴。
bool isUgly(int num) {
if(num == 1){
return true;
}
if(num <=0){
return false;
}
while(num % 2 == 0){
num /= 2;
}
while(num % 3 == 0){
num /= 3;
}
while(num % 5 == 0){
num /= 5;
}
return num == 1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: