用Java编写一个类,类中包含下列类方法:1)判断一个整数是否是素数的方法;2)判断一个整数是否是回文的方法;3)求一个正整数的阶乘的方法(此方法使用递归求阶乘);4)求一个正整数的逆序数的方法。然后再编写一个测试类,调用这些方法进行验证。
时间: 2023-12-14 20:39:00 浏览: 69
输入一个正整数,判断是不是素数(C++)
下面是Java编写的类,包含判断整数是否是素数、判断整数是否是回文、求正整数阶乘和求正整数逆序数的方法:
```java
public class NumberUtils {
// 判断一个整数是否是素数
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
// 判断一个整数是否是回文
public static boolean isPalindrome(int n) {
String str = String.valueOf(n);
int left = 0, right = str.length() - 1;
while (left < right) {
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
// 求正整数的阶乘
public static int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
}
return n * factorial(n - 1);
}
// 求正整数的逆序数
public static int reverse(int n) {
int rev = 0;
while (n > 0) {
rev = rev * 10 + n % 10;
n /= 10;
}
return rev;
}
}
```
接下来编写一个测试类,调用上述方法进行验证:
```java
public class TestNumberUtils {
public static void main(String[] args) {
// 测试判断素数
int n1 = 23;
boolean isPrime = NumberUtils.isPrime(n1);
if (isPrime) {
System.out.println(n1 + "是素数");
} else {
System.out.println(n1 + "不是素数");
}
// 测试判断回文数
int n2 = 12321;
boolean isPalindrome = NumberUtils.isPalindrome(n2);
if (isPalindrome) {
System.out.println(n2 + "是回文数");
} else {
System.out.println(n2 + "不是回文数");
}
// 测试求正整数的阶乘
int n3 = 5;
int factorial = NumberUtils.factorial(n3);
System.out.println(n3 + "的阶乘是:" + factorial);
// 测试求正整数的逆序数
int n4 = 12345;
int reverse = NumberUtils.reverse(n4);
System.out.println(n4 + "的逆序数是:" + reverse);
}
}
```
输出结果:
```
23是素数
12321是回文数
5的阶乘是:120
12345的逆序数是:54321
```
阅读全文