丑数 就是只包含质因数 2、3 和 5 的正整数。 给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。给出java代码和junit测试代码
时间: 2024-03-06 16:06:22 浏览: 35
以下是Java代码:
```
public class UglyNumber {
public static boolean isUgly(int n) {
if (n <= 0) {
return false;
}
while (n % 2 == 0) {
n /= 2;
}
while (n % 3 == 0) {
n /= 3;
}
while (n % 5 == 0) {
n /= 5;
}
return n == 1;
}
}
```
以下是JUnit测试代码:
```
import org.junit.Test;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class UglyNumberTest {
@Test
public void testIsUgly() {
assertTrue(UglyNumber.isUgly(6));
assertTrue(UglyNumber.isUgly(8));
assertFalse(UglyNumber.isUgly(14));
assertFalse(UglyNumber.isUgly(-2147483648));
}
}
```
这个程序的主要思路是将输入的整数不断除以2、3、5,直到无法再被这三个数整除。如果最终结果为1,说明原数只包含质因数2、3、5,是丑数;否则不是丑数。JUnit测试代码测试了4个例子,分别是丑数、丑数、非丑数和边界情况,用于验证程序的正确性。