丑数
程序员文章站
2022-07-15 16:18:16
...
写一个程序来检测一个整数是不是丑数
。
丑数的定义是,只包含质因子 2, 3, 5
的正整数。比如
6, 8 就是丑数,但是 14 不是丑数以为他包含了质因子 7。
注意事项
可以认为 1
是一个特殊的丑数。
样例
给出 num = 8
,返回 true
。
给出 num = 14
,返回 false
。
/**
* 如果一个数为丑数,则它必定能被2或3或者5这些质数整除,合数也一定能被某一个或者一些质数整除
* 所以不断整除2,3,5,最终结果为1时则表示为丑数
*
* @param num
* @return
*/
public boolean isUgly(int num) {
if (num == 0) return false;
if (num == 1) return true;
while (num % 2 == 0) num /= 2;
while (num % 3 == 0) num /= 3;
while (num % 5 == 0) num /= 5;
return num == 1 ? true : false;
}