java求100~2000内的素数,5个一行输出
时间: 2024-10-16 14:16:43 浏览: 42
Backtracking
在 Java 中,你可以使用 Sieve of Eratosthenes 算法来找出指定范围内的素数。以下是创建一个函数来找到 100 到 2000 之间的素数,并按行打印出五个素数的一个示例:
```java
import java.util.ArrayList;
import java.util.List;
public class PrimeNumbersInRange {
public static void main(String[] args) {
int start = 100;
int end = 2000;
printPrimeNumbers(start, end, 5);
}
// Sieve of Eratosthenes 算法
public static void printPrimeNumbers(int start, int end, int countPerLine) {
boolean[] isPrime = new boolean[end + 1]; // 初始化数组标记每个数字是否为素数
for (int i = 2; i <= Math.sqrt(end); i++) {
if (isPrime[i]) {
for (int j = i * i; j <= end; j += i) {
isPrime[j] = false; // 如果i能整除j,则j不是素数
}
}
}
List<Integer> primes = new ArrayList<>();
for (int i = start; i <= end; i++) {
if (isPrime[i]) {
primes.add(i);
if (primes.size() % countPerLine == 0) { // 按5个一组打印
printGroup(primes, countPerLine);
primes.clear(); // 清空已打印过的素数
}
}
}
// 打印剩下的素数(如果有的话)
if (!primes.isEmpty()) {
printGroup(primes, primes.size());
}
}
// 打印素数列表
private static void printGroup(List<Integer> primes, int size) {
for (int i = 0; i < size; i++) {
System.out.print(primes.get(i) + " ");
}
System.out.println();
}
}
```
这个程序会在控制台按照每行五个的方式输出 100 到 2000 之间的素数。
阅读全文