【LeetCode每日一题】丑数
丑数
1、题目描述
给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。
丑数 就是只包含质因数 2、3 和/或 5 的正整数。
示例1:
输入:n = 6
输出:true
解释:6 = 2 × 3
示例2:
输入:n = 8
输出:true
解释:8 = 2 × 2 × 2
示例3:
输入:n = 14
输出:false
解释:14 不是丑数,因为它包含了另外一个质因数 7 。
示例4:
输入:n = 1
输出:true
解释:1 通常被视为丑数。
2、算法思想
核心思想:
1、通过题目描述,丑数就是能被2,3,5这三个数除断的数(1特殊情况除外)
2、那么1除外的所有丑数都能被2,3,5整除,也就是说 丑数=(2^a)*(3^b)*(5^c)
具体实现:
1、传递过来的n先除以2,除到不能再除了(也就是没有余数)
2、再除以3,除到不能再除了
3、再除以5,除到不能再除了
4、如果最后n==1的话说明都除尽了,如果不等于1,说明没除尽。
3、代码实现
package com.java;
public class Day10_Solution {
public boolean isUgly(int n) {
int nums[] = {2,3,5};
if (n == 0) {
return false;
}
for(int i=0;i<nums.length;i++) {
if(n == 1) {
return true;
}
while (n % nums[i] == 0) {
n = n/nums[i];
}
}
return n == 1;
}
}