用java编写程序,找出1至n以内的所有素数。要求使用数组元素的下标从1至n以内表示这些数值,数组元素的值作为素数的标志。其中用数组元素的值为0来表示该元素的下标的数值是素数,用1来表示该元素的下标的数值不是素数,并输出这些素数。并给出文件结构
时间: 2024-02-21 17:01:49 浏览: 67
java代码-使用java编写程序打印出N以内的素数的源代码
好的,我来回答你的问题。以下是Java程序实现:
```java
import java.util.Arrays;
public class PrimeNumbers {
public static void main(String[] args) {
int n = 100; // 求1至n以内的素数
int[] isPrime = new int[n + 1]; // 用数组元素的值作为素数的标志,0表示素数,1表示不是素数
Arrays.fill(isPrime, 0); // 初始化数组元素为0
for (int i = 2; i <= n; i++) {
if (isPrime[i] == 0) { // 如果当前数是素数
System.out.print(i + " "); // 输出素数
for (int j = i * 2; j <= n; j += i) {
isPrime[j] = 1; // 标记当前数的倍数不是素数
}
}
}
}
}
```
以上程序利用埃氏筛法求解,时间复杂度为 O(nloglogn)。
文件结构如下:
```
PrimeNumbers/
├── PrimeNumbers.java
└── README.md
```
其中PrimeNumbers.java是Java源代码文件,README.md是程序说明文件。
阅读全文