Java将孪生素数存进数组
时间: 2023-05-29 12:01:38 浏览: 87
以下是Java代码,将孪生素数存进数组:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class TwinPrimes {
public static void main(String[] args) {
int start = 2; // 起始整数
int end = 100; // 结束整数
List<Integer> primes = findPrimes(start, end); // 找到start和end之间的所有素数
System.out.println("素数: " + primes);
int[] twinPrimesArray = findTwinPrimes(primes); // 找到孪生素数并存储在数组中
System.out.println("孪生素数: " + Arrays.toString(twinPrimesArray));
}
// 查找start和end之间的所有素数
public static List<Integer> findPrimes(int start, int end) {
List<Integer> primes = new ArrayList<>();
for (int i = start; i <= end; i++) {
if (isPrime(i)) {
primes.add(i);
}
}
return primes;
}
// 判断一个整数是否为素数
public static boolean isPrime(int n) {
if (n < 2) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
// 查找孪生素数并存储在数组中
public static int[] findTwinPrimes(List<Integer> primes) {
List<Integer> twinPrimes = new ArrayList<>();
for (int i = 0; i < primes.size() - 1; i++) {
int p1 = primes.get(i);
int p2 = primes.get(i + 1);
if (p2 - p1 == 2) {
twinPrimes.add(p1);
twinPrimes.add(p2);
}
}
int[] twinPrimesArray = twinPrimes.stream().mapToInt(Integer::intValue).toArray();
return twinPrimesArray;
}
}
```
阅读全文