用Python输出10-20中的素数并统计素数的个数
时间: 2024-05-15 09:15:04 浏览: 92
素数是指只能被1和自身整除的正整数,因此我们可以写一个判断某个数是否为素数的函数,然后遍历10到20之间的所有数,判断是否为素数即可。代码如下:
```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
count = 0
for i in range(10, 21):
if is_prime(i):
print(i)
count += 1
print("素数个数为:", count)
```
运行结果为:
```
11
13
17
19
素数个数为: 4
```
相关问题
用Python输出10-20中的素数并统计素数的个数 用break语句
```python
count = 0 # 记录素数个数
for i in range(10, 21):
for j in range(2, i):
if i % j == 0:
break # 如果能被整除,就不是素数,跳出循环
else:
print(i, end=' ')
count += 1
print('\n素数个数为:', count)
```
输出结果为:
```
11 13 17 19
素数个数为: 4
```
用Python输出10-20中的素数并统计素数的个数 用三种方法
方法一:暴力枚举法
```python
count = 0
for i in range(10, 21):
flag = True
for j in range(2, i):
if i % j == 0:
flag = False
break
if flag:
print(i, end=" ")
count += 1
print("\n共有{}个素数".format(count))
```
方法二:优化枚举法
```python
count = 0
for i in range(10, 21):
if i == 2 or i == 3:
print(i, end=" ")
count += 1
elif i > 3 and i % 6 in (1, 5):
flag = True
for j in range(5, int(i ** 0.5) + 1, 6):
if i % j == 0 or i % (j + 2) == 0:
flag = False
break
if flag:
print(i, end=" ")
count += 1
print("\n共有{}个素数".format(count))
```
方法三:埃氏筛法
```python
count = 0
is_prime = [True] * 11
is_prime[0] = is_prime[1] = False
for i in range(2, int(21 ** 0.5) + 1):
if is_prime[i]:
for j in range(i * i, 21 + 1, i):
is_prime[j] = False
for i in range(10, 21):
if is_prime[i]:
print(i, end=" ")
count += 1
print("\n共有{}个素数".format(count))
```
阅读全文