编写Java程序,接受用户输入的两个数据为上、下限,然后按10个一行输出上、下限之间的所有素数。
时间: 2024-09-17 18:05:26 浏览: 8
在Java中,你可以编写一个程序,使用Sieve of Eratosthenes算法来找出给定范围内的素数,并将其打印出来。以下是实现这个功能的示例代码:
```java
import java.util.Scanner;
public class PrimeNumbersInRange {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入上限数字: ");
int upperLimit = scanner.nextInt();
System.out.print("请输入下限数字(小于上限): ");
int lowerLimit = scanner.nextInt();
if (lowerLimit > upperLimit) {
System.out.println("下限不能大于上限,请重新输入!");
return;
}
printPrimeNumbersInRange(lowerLimit, upperLimit);
}
/**
* 使用Sieve of Eratosthenes算法查找并打印指定范围内的素数
*/
private static void printPrimeNumbersInRange(int lower, int upper) {
boolean[] primes = new boolean[upper + 1]; // 初始化布尔数组,表示每个数字是否为素数
for (int i = 2; i <= Math.sqrt(upper); i++) {
if (!primes[i]) {
// 将i的倍数标记为合数
for (int j = i * i; j <= upper; j += i) {
primes[j] = true;
}
}
}
// 打印素数
for (int i = lower; i <= upper; i++) {
if (!primes[i] && i > 1) {
System.out.println(i);
}
}
}
}
```
在此程序中,用户首先输入上下限,然后我们检查下限是否大于上限。接着,我们使用Sieve of Eratosthenes算法筛选出范围内的素数,并将它们打印出来。