Problem:
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.
Summary:
判断一个数是不是ugly number,即质因子只有2、3、5的数。
Analysis:
判断方法即为不断除以2、3、5,看最终能否得到1。以下两种方法大同小异。
class Solution {
public:
bool isUgly(int num) {
if (num <= ) return false; while (num != ) {
if (num % == ) num /=;
else if (num % == ) num /=;
else if (num % == ) num /= ;
else return false;
} return true;
}
};
class Solution {
public:
bool isUgly(int num) {
if (num <= ) return false; while (num >= && num % == ) num /= ;
while (num >= && num % == ) num /= ;
while (num >= && num % == ) num /= ; return num == ;
}
};