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.
Notice
Note that 1 is typically treated as an ugly number.
Example
Given num = 8 return true
Given num = 14 return false
思路
2,3,5是ugly number的质因数。那么给定一个数,要判断是不是ugly number,我们只需要不停去整除 这几个质因数。除不动了,判断一下除完的数是不是1。如果不是,说明还有其它质因数。这个数字就不是 ugly number。如果是1,我们确定这个数是ugly number。注意题目里说ugly number是个正数。
Code
public class Solution { /** * @param num an integer * @return true if num is an ugly number or false */ public boolean isUgly(int num) { // Write your code here // corner case if (num < 1) { return false; } while (num % 2 == 0) { num /= 2; } while (num % 3 == 0) { num /= 3; } while (num % 5 == 0) { num /= 5; } return num == 1; } }