class Solution { public boolean isUgly(int n) { if(n<=0)return false; if(n%2==0)return isUgly(n/2); if(n%3==0)return isUgly(n/3); if(n%5==0)return isUgly(n/5); return n==1; } }
思路:判断丑数一定一定要先排除特殊情况!
丑数是只包含质因数2,3,4的正整数 所以要先考虑n<0时均不是丑数
可以利用递归,通过丑数可以拆解成n=2^a*3^b*5^c的形式对n反复除以 2,3,5,直到 n 不再包含质因数 2,3,5。若剩下的数等于 1,则说明 n 不包含其他质因数,是丑数;否则,说明 n 包含其他质因数不是丑数。