|
发表于 2023-6-4 19:29:48
|
显示全部楼层
可以使用以下算法来实现这个问题:
定义一个新的空列表 results,作为存放所有素数的容器。
循环遍历输入的列表中的每一个数字 num。
对于每个 num,循环从 2 开始遍历到 num-1。
如果存在一个小于 num 且整除 num 的整数,则 num 不是素数,退出内层循环。
如果内层循环正常结束(即没有找到任何小于 num 的因数),则将 num 添加到结果列表中。
返回结果列表。
以下是 Python 代码实现:
- def find_primes(nums):
- results = []
- for num in nums:
- is_prime = True
- for i in range(2, num):
- if num % i == 0:
- is_prime = False
- break
- if is_prime and num > 1:
- results.append(num)
- return results
- # 测试代码
- nums = [2, 3, 5, 7, 9, 11, 23]
- print(find_primes(nums)) # 输出 [2, 3, 5, 7, 11, 23]
复制代码
以上代码定义了一个名为 find_primes 的函数,接受一个列表参数 nums,返回一个新的列表,其中仅包含输入列表中的素数。可以通过传递给该函数样例输入所示的列表 nums 来测试该函数,并通过输出结果 [2, 3, 5, 7, 11, 23] 来验证它是否正确。 |
|