用java用“埃氏筛法”求2~100以内的素数。2~100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,……依此类推,最后剩下的就是素数。要求使用数组
时间: 2024-02-25 17:54:45 浏览: 87
好的,我知道了。以下是使用Java语言实现的代码:
```java
public class SieveOfEratosthenes {
public static void main(String[] args) {
int[] numbers = new int[99];
int index = 0;
for (int i = 2; i <= 100; i++) {
numbers[index++] = i;
}
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] == 0) {
continue;
}
for (int j = i + 1; j < numbers.length; j++) {
if (numbers[j] == 0) {
continue;
}
if (numbers[j] % numbers[i] == 0) {
numbers[j] = 0;
}
}
}
System.out.print("2~100以内的素数为:");
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] != 0) {
System.out.print(numbers[i] + " ");
}
}
}
}
```
运行结果为:
```
2~100以内的素数为:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
```
首先,我们创建了一个数组 `numbers` ,用来存储 2~100 之间的所有数。接下来,我们使用双重循环来遍历数组 `numbers` ,第一层循环从第一个元素开始,第二层循环从第二个元素开始。如果第二层循环中的元素能够被第一层循环中的元素整除,那么将第二层循环中的元素赋值为0,表示它不是素数。最后,遍历数组 `numbers` ,输出不为0的元素,即为 2~100 以内的素数。
阅读全文