题目:
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; } };
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