使用Python编程,求10000以内的素数(质数),放入一个一维数组,并统计个数
时间: 2024-09-20 12:02:23 浏览: 50
在Python中,我们可以使用Sieve of Eratosthenes算法来找到一定范围内的所有素数并存储在一个列表中。这是一种古老且高效的筛选法,通过不断排除合数来找出素数。以下是实现这个功能的代码:
```python
def find_primes(n):
primes = [True] * (n+1) # 初始化一个布尔数组,假设所有数字都是质数
primes[0], primes[1] = False, False # 0和1不是质数
for i in range(2, int(n**0.5)+1): # 只需检查到根号n,因为大于根号n的因数必然小于它本身
if primes[i]:
for j in range(i*i, n+1, i): # 根据筛法原理,i的倍数都不是质数
primes[j] = False
prime_numbers = [i for i in range(2, n) if primes[i]] # 把质数筛选出来
return prime_numbers, len(prime_numbers)
# 获取10000以内的素数及其个数
prime_list, count = find_primes(10000)
print(f"10000以内的素数有:{prime_list}")
print(f"素数个数:{count}")
相关问题
Python判断一个三维数组的质数个数
可以使用以下代码来判断一个三维数组中的质数个数:
```
import math
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(math.sqrt(num))+1):
if num % i == 0:
return False
return True
def count_primes(arr):
count = 0
for i in range(len(arr)):
for j in range(len(arr[i])):
for k in range(len(arr[i][j])):
if is_prime(arr[i][j][k]):
count += 1
return count
```
这个函数会遍历整个三维数组,对每个数判断是否是质数,如果是则累加计数器。你可以将你的三维数组传递给这个函数,它会返回质数的个数。
将200以内的所有素数存放到一维数组中并输出
好的,我可以为您解答这个问题。
以下是用 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
# 将200以内的素数存入列表中
primes = []
for i in range(2, 201):
if is_prime(i):
primes.append(i)
# 输出列表中的素数
print(primes)
```
运行这个脚本,将得到如下输出:
```
[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]
```
这个列表中包括了所有小于等于200的素数,您可以用类似的方式来处理其他素数范围的问题。
阅读全文