求300以内的所有素数的python代码
时间: 2023-06-05 22:08:42 浏览: 20
以下是求300以内的所有素数的Python代码:
```python
for num in range(2, 300):
for i in range(2, num):
if num % i == 0:
break
else:
print(num)
```
该代码使用了嵌套的for循环,对于每个数字num,都从2开始到num-1判断是否能被整除,如果整除则跳出内层循环,不是素数;否则遍历完没有整除,则是素数。注意,代码中的else是for循环的附加语句,表示当for循环成功遍历完所有元素时,才会执行else语句。
相关问题
python求300以内的质数代码分析
以下是 Python 代码实现:
```python
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True
for i in range(2, 301):
if is_prime(i):
print(i)
```
代码解析:
首先定义一个函数 is_prime(num),用于判断一个数字是否为质数。如果该数字小于 2,则不是质数,直接返回 False。如果该数字大于等于 2,则从 2 开始遍历到它的平方根,如果在此范围内存在一个数能够整除该数字,则它不是质数,返回 False。如果遍历完毕都没有找到能够整除该数字的数,则它是质数,返回 True。
接着使用 for 循环遍历 2 到 300 之间的数字,对于每个数字都调用 is_prime 函数进行判断,如果是质数则打印出来。
用筛选法求300以内素数python
可以使用以下代码来使用筛选法求300以内的素数:
```python
# 初始化一个长度为300的列表,全部赋值为True
is_prime = [True] * 300
# 和1不是素数,将其标记为False
is_prime[] = is_prime[1] = False
# 从2开始遍历到根号300
for i in range(2, int(300 ** .5) + 1):
# 如果当前数是素数,将其倍数标记为False
if is_prime[i]:
for j in range(i * i, 300, i):
is_prime[j] = False
# 输出所有素数
for i in range(2, 300):
if is_prime[i]:
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
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
211
223
227
229
233
239
241
251
257
263
269
271
277
281
283
293
```
相关推荐














