丑數(shù)
題目描述:給你一個(gè)整數(shù) n ,請(qǐng)你判斷 n 是否為 丑數(shù) 崔挖。如果是贸街,返回 true ;否則狸相,返回 false 薛匪。
丑數(shù) 就是只包含質(zhì)因數(shù) 2、3 和/或 5 的正整數(shù)脓鹃。
示例說(shuō)明請(qǐng)見(jiàn)LeetCode官網(wǎng)逸尖。
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/ugly-number/
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán)瘸右,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處娇跟。
解法一:遍歷
- 首先,如果n等于0尊浓,直接返回false逞频。
- 循環(huán)處理將n的質(zhì)因子2纯衍、3栋齿、5都除掉,然后循環(huán)處理襟诸,如果n能夠被
2~Math.sqrt(n)
的任何一個(gè)數(shù)整除瓦堵,則返回false;否則歌亲,如果n為1菇用、2、3陷揪、5中的任何一個(gè)數(shù)字惋鸥,返回true杂穷,否則返回false。
public class LeetCode_263 {
public static boolean isUgly(int n) {
if (n == 0) {
return false;
}
while (n % 2 == 0) {
n = n / 2;
}
while (n % 3 == 0) {
n = n / 3;
}
while (n % 5 == 0) {
n = n / 5;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
if (n == 1 || n == 2 || n == 3 || n == 5) {
return true;
} else {
return false;
}
}
public static void main(String[] args) {
System.out.println(isUgly(920408890));
}
}
【每日寄語(yǔ)】 萬(wàn)物之中卦绣,希望至美耐量。