题目原址
https://leetcode.com/problems/ugly-number/description/
题目描述
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.
解题思路
递归实现该功能
- 一个ugly number能被2,3,5中的一个来整除,
- 整除的结果继续被2,3,5中的一个整除,直到整除的结果变为1
- 如果他的任何一个中间结果不能被2,3,5中的一个整除,那么久不是一个ugly number
AC代码
class Solution {
public boolean isUgly(int num) {
if(num <= 0)
return false;
return valid(num);
}
public boolean valid(int num) {
if(num == 1)
return true;
return ((num % 2 == 0) && valid(num /2)) || ((num % 3 == 0) && valid(num /3)) || ((num % 5 == 0) && valid(num /5));
}
}