java编写一个类,类中包含下列类方法:1)判断一个整数是否是素数的方法;2)判断一个整数是否是回文的方法;3)求一个正整数的阶乘的方法(此方法使用递归求阶乘);4)求一个正整数的逆序数的方法。然后再编写一个测试类,调用这些方法进行验证。用三种简单方法
时间: 2024-05-16 09:15:30 浏览: 7
1. Java类实现:
```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) {
if (num < 0) {
return false;
}
int temp = num, reverse = 0;
while (temp != 0) {
reverse = reverse * 10 + temp % 10;
temp /= 10;
}
return num == reverse;
}
// 求一个正整数的阶乘
public static int factorial(int num) {
if (num == 0 || num == 1) {
return 1;
}
return num * factorial(num - 1);
}
// 求一个正整数的逆序数
public static int reverse(int num) {
int reverse = 0;
while (num != 0) {
reverse = reverse * 10 + num % 10;
num /= 10;
}
return reverse;
}
}
```
2. 测试类实现:
```java
public class MathUtilTest {
public static void main(String[] args) {
// 判断一个整数是否是素数
int num1 = 2;
if (MathUtil.isPrime(num1)) {
System.out.println(num1 + "是素数");
} else {
System.out.println(num1 + "不是素数");
}
// 判断一个整数是否是回文数
int num2 = 121;
if (MathUtil.isPalindrome(num2)) {
System.out.println(num2 + "是回文数");
} else {
System.out.println(num2 + "不是回文数");
}
// 求一个正整数的阶乘
int num3 = 5;
System.out.println(num3 + "的阶乘为:" + MathUtil.factorial(num3));
// 求一个正整数的逆序数
int num4 = 12345;
System.out.println(num4 + "的逆序数为:" + MathUtil.reverse(num4));
}
}
```
3. 简单方法调用:
```java
// 判断一个整数是否是素数
int num1 = 2;
if (num1 == 2 || num1 != 1 && (num1 & 1) == 1) {
boolean flag = true;
for (int i = 3; i <= Math.sqrt(num1); i += 2) {
if (num1 % i == 0) {
flag = false;
break;
}
}
if (flag) {
System.out.println(num1 + "是素数");
} else {
System.out.println(num1 + "不是素数");
}
} else {
System.out.println(num1 + "不是素数");
}
// 判断一个整数是否是回文数
int num2 = 121;
String str = String.valueOf(num2);
int len = str.length();
boolean flag = true;
for (int i = 0; i < len / 2; i++) {
if (str.charAt(i) != str.charAt(len - 1 - i)) {
flag = false;
break;
}
}
if (flag) {
System.out.println(num2 + "是回文数");
} else {
System.out.println(num2 + "不是回文数");
}
// 求一个正整数的阶乘
int num3 = 5, res = 1;
for (int i = 2; i <= num3; i++) {
res *= i;
}
System.out.println(num3 + "的阶乘为:" + res);
// 求一个正整数的逆序数
int num4 = 12345, reverse = 0;
while (num4 != 0) {
reverse = reverse * 10 + num4 % 10;
num4 /= 10;
}
System.out.println(num4 + "的逆序数为:" + reverse);
```