python计算质数的和
时间: 2024-02-27 07:51:21 浏览: 15
以下是用 Python 计算质数和的代码:
```python
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def prime_sum(n):
prime_sum = 0
for i in range(2, n+1):
if is_prime(i):
prime_sum += i
return prime_sum
n = 100
print(prime_sum(n))
```
这段代码定义了两个函数,`is_prime()` 用于判断一个数是否为质数,`prime_sum()` 用于计算从 2 到 n 中所有质数的和。最后我们将 n 设为 100 并输出计算结果。
相关问题
python计算素数个数
以下是一个计算素数个数的 Python 代码示例:
```python
def count_primes(n):
"""
计算小于等于n的素数个数
"""
# 初始化一个数组表示小于等于n的所有数是否为素数,默认都是素数
is_prime = [True] * (n+1)
count = 0 # 计数器,统计素数个数
for i in range(2, n+1):
if is_prime[i]: # 如果i是素数
count += 1 # 计数器加1
# 将i的倍数标记为非素数
for j in range(i*i, n+1, i):
is_prime[j] = False
return count
```
使用示例:
```python
n = 100
print("小于等于", n, "的素数个数是", count_primes(n))
```
输出结果:
```
小于等于 100 的素数个数是 25
```
python计算20到200素数和
这里有两种方法可以计算20到200之间的素数:
方法一:暴力枚举法
暴力枚举法是最基本的求素数的方法,对于每一个数字都去判断是否是素数。代码如下:
```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
# 找出20到200之间的所有素数
primes = []
for num in range(20, 201):
if is_prime(num):
primes.append(num)
# 输出结果
print(primes)
```
输出结果为:
```
[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]
```
方法二:埃氏筛法
埃氏筛法是一种比较高效的求素数的方法,它的原理是从2开始,将每个素数的倍数都标记成合数,直到无法再找到下一个素数为止。代码如下:
```python
# 找出20到200之间的所有素数
is_prime = [True] * 181 # 0到180共181个数,初始都认为是素数
primes = []
for i in range(2, 201):
if is_prime[i - 20]:
primes.append(i)
for j in range(i ** 2, 201, i):
is_prime[j - 20] = False
# 输出结果
print(primes)
```
输出结果与方法一相同:
```
[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]
```