编写一个应用程序求100以内的全部素数。 按照下面格式输出 |2|3|5|7|11|13|17|19|........ java实现
时间: 2023-10-16 22:06:39 浏览: 135
程序_简单的程序_joined7ni_输出质数_
以下是 Java 实现:
```java
public class PrimeNumbers {
public static void main(String[] args) {
int num = 100;
boolean[] primes = new boolean[num + 1];
for (int i = 2; i <= num; i++) {
primes[i] = true;
}
for (int i = 2; i * i <= num; i++) {
if (primes[i]) {
for (int j = i * i; j <= num; j += i) {
primes[j] = false;
}
}
}
System.out.print("|");
for (int i = 2; i <= num; i++) {
if (primes[i]) {
System.out.print(i + "|");
}
}
}
}
```
运行结果:
```
|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|
```
该程序使用埃拉托斯特尼筛法求解,它的时间复杂度为 O(n log log n)。程序中首先创建一个 bool 类型的数组 primes,长度为 num + 1,表示从 0 到 num 的整数是否是素数。然后将数组中的所有元素都初始化为 true(假设它们都是素数),除了 0 和 1。接下来,从 2 开始遍历 primes 数组,如果当前元素是素数(即 primes[i] 为 true),则将其倍数(除了自己)都标记为非素数,即将 primes[j] 设为 false。最后,再次遍历 primes 数组,输出所有为 true 的元素的下标,即表示素数的数字。
阅读全文