(1)从键盘获取一个整数n(大于等于2),程序找到n以内的所有素数; (2)将这些找到的素数保存在一个数组中,并输出数组中所保存的这些素数。 用Java写代码
时间: 2024-09-19 10:16:36 浏览: 109
在Java中,我们可以编写一个简单的程序来完成这个任务。首先,我们需要创建一个函数来检查一个数字是否为素数,然后遍历指定范围内的数字并筛选出素数,最后将它们存储到数组中。以下是完整的代码示例:
```java
import java.util.ArrayList;
import java.util.Scanner;
public class PrimeNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个大于等于2的整数n:");
int n = scanner.nextInt();
if (n < 2) {
System.out.println("输入错误,n必须大于等于2。");
return;
}
boolean[] isPrime = new boolean[n];
for (int i = 2; i <= n; i++) {
isPrime[i] = true; // 先假设i都是素数
}
for (int i = 2; i * i <= n; i++) {
if (isPrime[i]) { // 如果i是素数
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false; // 将i的所有倍数标记为非素数
}
}
}
ArrayList<Integer> primes = new ArrayList<>();
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
primes.add(i);
System.out.print(i + " "); // 输出素数
}
}
System.out.println("\n所有找到的素数:");
for (int prime : primes) {
System.out.print(prime + " ");
}
// 关闭扫描器
scanner.close();
}
}
```
在这个程序中,我们首先生成了一个布尔数组`isPrime`,用于标记每个数字是否为素数。接着通过一个嵌套循环找出小于或等于`n`的素数。最后,我们将找到的素数添加到`ArrayList`中,并打印出来。
阅读全文