用java写一个提供一个类的成员方法,public static int[][] TwinsPrime(int start,int end),返回[start,end】范围内的所有孪生素数,输出结果,并以2维数组的形式返回。
时间: 2023-05-15 07:07:45 浏览: 56
JAVA中的二维数组
5星 · 资源好评率100%
以下是提供的 Java 代码,可以实现您所需的功能:
```
import java.util.ArrayList;
public class TwinsPrime {
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 int[][] TwinsPrime(int start, int end) {
ArrayList<int[]> result = new ArrayList<>();
for (int i = start; i <= end - 2; i++) {
if (isPrime(i) && isPrime(i + 2)) {
int[] pair = {i, i + 2};
result.add(pair);
}
}
int[][] output = new int[result.size()][2];
for (int i = 0; i < result.size(); i++) {
output[i] = result.get(i);
}
return output;
}
public static void main(String[] args) {
int[][] twins = TwinsPrime(1, 100);
for (int[] pair : twins) {
System.out.println(pair[0] + ", " + pair[1]);
}
}
}
```
这个程序定义了一个 `TwinsPrime` 方法,它接受两个整数参数 `start` 和 `end`,并返回一个二维数组,其中包含 `[start, end]` 范围内的所有孪生素数。程序使用 `isPrime` 方法来检查一个数是否为素数,然后遍历 `[start, end-2]` 范围内的所有数,找到所有满足条件的孪生素数对,并将它们存储在一个 `ArrayList` 中。最后,程序将 `ArrayList` 转换为一个二维数组,并返回它。
在 `main` 方法中,我们调用 `TwinsPrime` 方法,并将结果打印到控制台上。对于 `[1, 100]` 范围内的输入,程序的输出如下:
```
3, 5
5, 7
11, 13
17, 19
29, 31
41, 43
59, 61
71, 73
```
这些都是 `[1, 100]` 范围内的孪生素数对。
阅读全文