用Java,从键输入一个不大于20的整型数,编写求该整型数阶乘的方法,返回值为long.能够被main0方法直接调用。,,,下一题课程练习2.27:所谓“素数”不能被其他整型数整除的数(除1外)。从键盘随机输 入一个大于0的整数,输出该数是否为素数。要求编写判断是否这素数的方法.
时间: 2024-09-25 16:09:14 浏览: 52
首先,让我们分别创建两个Java方法,一个用于计算整数的阶乘并返回长整型结果,另一个用于检查一个数是否为素数。
**计算阶乘的方法**:
```java
public class FactorialCalculator {
public static long calculateFactorial(int n) {
if (n < 0 || n > 20) {
throw new IllegalArgumentException("Input must be between 0 and 20");
}
long result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
}
// 主方法中调用:
public static void main(String[] args) {
int userInput = getUserInputFromConsole();
long factorial = FactorialCalculator.calculateFactorial(userInput);
System.out.printf("The factorial of %d is %d%n", userInput, factorial);
}
private static int getUserInputFromConsole() {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter an integer between 0 and 20: ");
int input = scanner.nextInt();
scanner.close();
return input;
}
```
**判断素数的方法**:
```java
import java.util.Scanner;
public class PrimeChecker {
public static boolean isPrime(int number) {
if (number <= 1) {
return false;
}
for (int i = 2; i * i <= number; i++) { // 只需检查到其平方根即可
if (number % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
int randomInput = getRandomInputFromConsole();
boolean isPrimeResult = isPrime(randomInput);
System.out.printf("%d is prime? %b%n", randomInput, isPrimeResult);
}
private static int getRandomInputFromConsole() {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a positive integer: ");
int input = scanner.nextInt();
scanner.close();
return input;
}
}
```
现在你可以运行这两个方法,一个计算阶乘,一个检查素数。如果你想要将它们组合在一个主程序中,只需将上述代码合并即可。
阅读全文