编写一个应用程序求100以内的全部素数。 按照下面格式输出 |2|3|5|7|11|13|17|19|........
时间: 2023-10-15 08:05:53 浏览: 156
以下是 Python 代码实现:
```python
def is_prime(n):
"""
判断一个数是否为素数
"""
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
# 求100以内的全部素数
primes = []
for i in range(2, 101):
if is_prime(i):
primes.append(i)
# 输出结果
print('|', end='')
for p in primes:
print(p, end='|')
```
输出结果为:
```
|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|
```
相关问题
java编写一个应用程序求100以内的全部素数。 按照下面格式输出 |2|3|5|7|11|13|17|19|........
以下是Java代码实现:
```java
public class PrimeNumbers {
public static void main(String[] args) {
int limit = 100;
System.out.print("|");
for (int i = 2; i <= limit; i++) {
boolean isPrime = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
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|
```
编写一个应用程序求100以内的全部素数。 按照下面格式输出 |2|3|5|7|11|13|17|19|........ java实现
以下是 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 的元素的下标,即表示素数的数字。
阅读全文