鱼C论坛

 找回密码
 立即注册
查看: 1409|回复: 6

[已解决]找出自然数列表中的素数,并放入另外一个列表,然后输出找出的素数

[复制链接]
发表于 2023-6-4 19:12:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
【问题描述】

读入一个自然数构成的列表,找出其中的每一个素数,然后放入另外一个列表,并输出这个列表。
【输入形式】

按照列表的形式输入,包括方括号,元素之间用逗号分隔。
【输出形式】

直接用print输出列表
【样例输入】

[2,3,5,7,9,11,23]

【样例输出】

[2, 3, 5, 7, 11, 23]

请问这个题有什么简单易懂的方法吗
最佳答案
2023-6-4 19:16:55
本帖最后由 sfqxx 于 2023-6-4 19:31 编辑

这个题目可以用一个简单的循环遍历每个数,判断是否为素数,如果是素数则添加到结果列表中,最后输出结果列表即可。

下面是 Python 的示例代码:

  1. def is_prime(num):
  2.     """判断一个数是否为素数"""
  3.     if num < 2:
  4.         return False
  5.     for i in range(2, int(num ** 0.5) + 1):
  6.         if num % i == 0:
  7.             return False
  8.     return True

  9. def find_primes(numbers):
  10.     """在列表中找出所有的素数"""
  11.     primes = []
  12.     for num in numbers:
  13.         if is_prime(num):
  14.             primes.append(num)
  15.     return primes

  16. # 读取输入数据
  17. numbers = eval(input())

  18. # 找出所有素数并输出
  19. primes = find_primes(numbers)
  20. print(primes)
复制代码


这里定义了两个函数,`is_prime()` 函数用于判断一个数是否为素数,`find_primes()` 函数则用于在给定的列表中找出所有的素数。根据输入数据调用 `find_primes()` 函数,然后将得到的结果输出即可。

有用请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-4 19:16:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sfqxx 于 2023-6-4 19:31 编辑

这个题目可以用一个简单的循环遍历每个数,判断是否为素数,如果是素数则添加到结果列表中,最后输出结果列表即可。

下面是 Python 的示例代码:

  1. def is_prime(num):
  2.     """判断一个数是否为素数"""
  3.     if num < 2:
  4.         return False
  5.     for i in range(2, int(num ** 0.5) + 1):
  6.         if num % i == 0:
  7.             return False
  8.     return True

  9. def find_primes(numbers):
  10.     """在列表中找出所有的素数"""
  11.     primes = []
  12.     for num in numbers:
  13.         if is_prime(num):
  14.             primes.append(num)
  15.     return primes

  16. # 读取输入数据
  17. numbers = eval(input())

  18. # 找出所有素数并输出
  19. primes = find_primes(numbers)
  20. print(primes)
复制代码


这里定义了两个函数,`is_prime()` 函数用于判断一个数是否为素数,`find_primes()` 函数则用于在给定的列表中找出所有的素数。根据输入数据调用 `find_primes()` 函数,然后将得到的结果输出即可。

有用请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-4 19:29:48 | 显示全部楼层
可以使用以下算法来实现这个问题:

定义一个新的空列表 results,作为存放所有素数的容器。
循环遍历输入的列表中的每一个数字 num。
对于每个 num,循环从 2 开始遍历到 num-1。
如果存在一个小于 num 且整除 num 的整数,则 num 不是素数,退出内层循环。
如果内层循环正常结束(即没有找到任何小于 num 的因数),则将 num 添加到结果列表中。
返回结果列表。
以下是 Python 代码实现:

  1. def find_primes(nums):
  2.     results = []
  3.     for num in nums:
  4.         is_prime = True
  5.         for i in range(2, num):
  6.             if num % i == 0:
  7.                 is_prime = False
  8.                 break
  9.         if is_prime and num > 1:
  10.             results.append(num)
  11.     return results

  12. # 测试代码
  13. nums = [2, 3, 5, 7, 9, 11, 23]
  14. print(find_primes(nums))  # 输出 [2, 3, 5, 7, 11, 23]
复制代码

以上代码定义了一个名为 find_primes 的函数,接受一个列表参数 nums,返回一个新的列表,其中仅包含输入列表中的素数。可以通过传递给该函数样例输入所示的列表 nums 来测试该函数,并通过输出结果 [2, 3, 5, 7, 11, 23] 来验证它是否正确。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-4 19:31:18 | 显示全部楼层
这个题目可以用一个简单的循环遍历每个数,判断是否为素数,如果是素数则添加到结果列表中,最后输出结果列表即可。

下面是 Python 的示例代码:

  1. def is_prime(num):
  2.     """判断一个数是否为素数"""
  3.     if num < 2:
  4.         return False
  5.     for i in range(2, int(num ** 0.5) + 1):
  6.         if num % i == 0:
  7.             return False
  8.     return True

  9. def find_primes(numbers):
  10.     """在列表中找出所有的素数"""
  11.     primes = []
  12.     for num in numbers:
  13.         if is_prime(num):
  14.             primes.append(num)
  15.     return primes

  16. # 读取输入数据
  17. numbers = eval(input())

  18. # 找出所有素数并输出
  19. primes = find_primes(numbers)
  20. print(primes)
复制代码


这里定义了两个函数,`is_prime()` 函数用于判断一个数是否为素数,`find_primes()` 函数则用于在给定的列表中找出所有的素数。根据输入数据调用 `find_primes()` 函数,然后将得到的结果输出即可。

有用请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-4 20:07:35 | 显示全部楼层
sfqxx 发表于 2023-6-4 19:16
这个题目可以用一个简单的循环遍历每个数,判断是否为素数,如果是素数则添加到结果列表中,最后输出结果列 ...

请问第5行是什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-4 20:13:28 | 显示全部楼层
2991462923@qq.c 发表于 2023-6-4 20:07
请问第5行是什么意思

屏幕截图 2023-06-04 201244.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-4 20:30:45 | 显示全部楼层
以下是一个使用Python编写的简单算法。在这个代码中,我们首先创建了一个名为 is_prime 的函数,它可以判断一个数是否是素数。然后我们在输入列表中遍历每个元素,如果该元素是素数,我们就将其添加到新的列表中。

  1. def is_prime(n):
  2.     if n <= 1:
  3.         return False
  4.     if n <= 3:
  5.         return True
  6.     if n % 2 == 0 or n % 3 == 0:
  7.         return False
  8.     i = 5
  9.     while (i * i <= n):
  10.         if (n % i == 0 or n % (i + 2) == 0):
  11.             return False
  12.         i += 6
  13.     return True

  14. def find_primes_in_list(lst):
  15.     primes = []
  16.     for num in lst:
  17.         if is_prime(num):
  18.             primes.append(num)
  19.     return primes

  20. input_list = [2, 3, 5, 7, 9, 11, 23]  # 输入的自然数列表
  21. output_list = find_primes_in_list(input_list)  # 找出列表中的素数
  22. print(output_list)  # 输出素数列表
复制代码


运行此代码后,应该会打印出  [2, 3, 5, 7, 11, 23] ,这是输入列表中的所有素数。

该代码会从头到尾遍历输入的列表,对每个元素检查是否为素数,如果是,则添加到结果列表中。 is_prime  函数用于判断一个数是否为素数,这个函数采用了一种常用的快速判断素数的方法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 16:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表