编写一个类,类中包含下列类方法:1)判断一个整数是否是素数的方法;2)判断一个整数是否是回文的方法;3)求一个正整数的阶乘的方法(此方法使用递归求阶乘);4)求一个正整数的逆序数的方法。然后再编写一个测试类,调用这些方法进行验证。
时间: 2023-12-14 21:38:59 浏览: 68
以下是实现上述要求的代码:
```java
public class MathUtil {
// 判断一个整数是否为素数
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
// 判断一个整数是否为回文数
public static boolean isPalindrome(int num) {
int reverseNum = 0;
int originalNum = num;
while (num > 0) {
int digit = num % 10;
reverseNum = reverseNum * 10 + digit;
num /= 10;
}
return originalNum == reverseNum;
}
// 求一个正整数的阶乘
public static int factorial(int num) {
if (num == 0) {
return 1;
}
return num * factorial(num - 1);
}
// 求一个正整数的逆序数
public static int reverse(int num) {
int reverseNum = 0;
while (num > 0) {
int digit = num % 10;
reverseNum = reverseNum * 10 + digit;
num /= 10;
}
return reverseNum;
}
}
```
测试类如下:
```java
public class MathUtilTest {
public static void main(String[] args) {
// 测试判断素数
int num1 = 7;
System.out.println(num1 + "是素数吗?" + MathUtil.isPrime(num1));
int num2 = 9;
System.out.println(num2 + "是素数吗?" + MathUtil.isPrime(num2));
// 测试判断回文数
int num3 = 12321;
System.out.println(num3 + "是回文数吗?" + MathUtil.isPalindrome(num3));
int num4 = 12345;
System.out.println(num4 + "是回文数吗?" + MathUtil.isPalindrome(num4));
// 测试求阶乘
int num5 = 5;
System.out.println(num5 + "! = " + MathUtil.factorial(num5));
// 测试求逆序数
int num6 = 12345;
System.out.println(num6 + "的逆序数是:" + MathUtil.reverse(num6));
}
}
```
输出结果如下:
```
7是素数吗?true
9是素数吗?false
12321是回文数吗?true
12345是回文数吗?false
5! = 120
12345的逆序数是:54321
```
阅读全文