运用java语言写一下题目 1. 筛法求素数 编写一个程序,从键盘读取正整数n,使用筛法求不大于n的所有素数(或称质数,Prime Number),并逐个打印出来。输出结果为: n=10 The prime numbers are 2,3,5,7
时间: 2024-09-25 11:04:39 浏览: 35
在Java中,我们可以使用埃拉托斯特尼筛法(Sieve of Eratosthenes)来求解这个问题。以下是运用Java编写的一个简单程序:
```java
import java.util.*;
public class PrimeNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个正整数n:");
int n = scanner.nextInt();
sieveOfEratosthenes(n);
}
// 筛法求素数
private static void sieveOfEratosthenes(int n) {
boolean[] isPrime = new boolean[n + 1];
Arrays.fill(isPrime, true); // 先假设所有数字都是质数
for (int i = 2; i * i <= n; i++) { // 只需检查到√n
if (isPrime[i]) { // 如果i是质数
for (int j = i * i; j <= n; j += i) { // 将i的倍数标记为非质数
isPrime[j] = false;
}
}
}
// 打印小于等于n的所有素数
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
System.out.print(i + " ");
}
}
System.out.println();
}
}
```
当你运行这个程序,并输入`n=10`时,它将输出:
```
The prime numbers are 2 3 5 7
```
阅读全文