python程序求三百到四百的素数之和
时间: 2023-12-11 18:07:30 浏览: 47
以下是Python程序,用于求300到400之间的所有素数之和:
```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
# 求和
sum = 0
for i in range(300, 401):
if is_prime(i):
sum += i
print("300到400之间的素数之和为:", sum)
```
输出结果为:300到400之间的素数之和为: 2633
相关问题
编写python程序求3-100之间所有素数之和
可以使用以下程序来求解3到100之间所有素数之和:
```python
sum = 0
for num in range(3, 101):
for i in range(2, num):
if num % i == 0:
break
else:
sum += num
print("3-100之间所有素数之和为:", sum)
```
程序中使用两个循环,分别遍历3到100之间的所有数字和每个数字的所有可能因子。如果一个数字能被任何一个因子整除,则它不是素数,跳出当前循环。如果内部循环完整执行(即没有被中途跳出),则说明该数字是素数,将其加入到总和中。最后,输出所有素数的和。
求素数Python程序
在Python中,我们可以使用多种方法来编写一个简单的素数查找程序。这里展示一种常见的试除法(也称为埃拉托斯特尼筛法)实现的例子:
```python
def sieve_of_eratosthenes(n):
primes = [True] * (n + 1)
p = 2
while p * p <= n:
# 如果primes[p]还未改变,说明p是素数
if primes[p]:
# 将p的倍数全部标记为合数
for i in range(p * p, n + 1, p):
primes[i] = False
p += 1
# 返回大于1且为素数的数字列表
return [p for p in range(2, n) if primes[p]]
# 示例:找出小于50的所有素数
print(sieve_of_eratosthenes(50))
```
另一种更简洁的方式是使用内置的`filter()`函数配合`lambda`表达式和`math.sqrt()`函数,只检查到一个数开平方根即可:
```python
import math
def is_prime(n):
if n < 2:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
def primes_upto(n):
return list(filter(is_prime, range(2, n)))
print(primes_upto(50))
```
阅读全文