用Java从键盘上输入n组整数,找出每组中最大的素数。第一行输入一个整数n,表示后面将输入n行整数,每行的整数为若干。要求使用BufferedReader和BufferedWriter
时间: 2024-05-07 07:22:53 浏览: 51
以下是使用BufferedReader和BufferedWriter实现从键盘上输入n组整数,找出每组中最大的素数的Java代码:
```java
import java.io.*;
public class Main {
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 void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
for (int i = 0; i < n; i++) {
String[] nums = br.readLine().split(" ");
int maxPrime = Integer.MIN_VALUE;
for (String num : nums) {
int currNum = Integer.parseInt(num);
if (isPrime(currNum) && currNum > maxPrime) {
maxPrime = currNum;
}
}
bw.write(maxPrime + "\n");
}
bw.flush();
bw.close();
br.close();
}
}
```
代码解释:
1. `isPrime`方法用于判断一个数是否为素数,如果是素数返回true,否则返回false。
2. `main`方法中,首先使用BufferedReader读取输入的n,然后使用for循环读取每一行的整数。
3. 对于每一行的整数,使用split方法将其分割成字符串数组,然后遍历每个字符串,将其转换成整数。
4. 如果当前整数是素数且大于之前的最大素数,就将最大素数更新为当前整数。
5. 最后使用BufferedWriter输出每组的最大素数。
注意事项:
1. 输入的每行整数之间必须用空格隔开。
2. 输出时每组的最大素数和下一组的整数之间必须用换行符隔开。
阅读全文