题目:
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的条件是 num /= pow(2, max) /= pow(3, max) /= pow(5, max) == 1。
C++版:
class Solution {
public:
bool isUgly(int num) {
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? true : false;
}
};
Java版:
public class Solution {
public boolean isUgly(int num) {
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 ? true : false;
}
}
Python版:
class Solution(object):
def isUgly(self, num):
"""
:type num: int
:rtype: bool
"""
if num == 0:
return False
while num % 2 == 0:
num /= 2
while num % 3 == 0:
num /= 3
while num % 5 == 0:
num /= 5
if num == 1:
return True
else:
return False