如何在Java中检查一个数字是否是丑数?

什么是丑数?

丑数是指只包含2、3、5因子的正整数,最小的丑数为1,根据定义,所有的丑数都可以由1乘以2、3或5得到。

举例来说,前10个丑数分别为:1、2、3、4、5、6、8、9、10、12。

判断一个数字是否是丑数的方法

要判断一个数字是否是丑数,可以采用以下步骤:

Step 1 :判断数字是否大于0

只有大于0的数字才可能是丑数,因此需要首先判断数字是否大于0。

public boolean isUgly(int num) {

if (num <= 0) {

return false;

}

//...

}

Step 2 :循环判断是否可以被2、3、5整除

如果数字大于0,那么就需要循环判断这个数字能否被2、3、5整除,如果可以的话,将该数字除以2、3或5,再判断结果是否能被2、3、5整除。直到最终得到1。

在判断是否能被2、3、5整除时,可以使用取余运算符%来判断。

public boolean isUgly(int num) {

if (num <= 0) {

return false;

}

while (num % 2 == 0) {

num /= 2;

}

while (num % 3 == 0) {

num /= 3;

}

while (num % 5 == 0) {

num /= 5;

}

return num == 1;

}

完整代码

将上述两个步骤合并起来,得到完整代码如下:

public boolean isUgly(int num) {

if (num <= 0) {

return false;

}

while (num % 2 == 0) {

num /= 2;

}

while (num % 3 == 0) {

num /= 3;

}

while (num % 5 == 0) {

num /= 5;

}

return num == 1;

}

测试丑数判断方法

我们可以使用JUnit框架编写测试用例来测试丑数判断方法。

下面是两个测试用例:

测试用例1:判断17是否是丑数

17无法被2、3、5整除,因此不是丑数。

@Test

public void testIsUgly1() {

assertFalse(isUgly(17));

}

测试用例2:判断10是否是丑数

10可以被2和5整除,因此是丑数。

@Test

public void testIsUgly2() {

assertTrue(isUgly(10));

}

总结

本文介绍了如何在Java中判断一个数字是否是丑数,通过判断数字能否被2、3、5整除,最终得到1,可以判断该数字是否是丑数。

后端开发标签