Python实现从实验数据中筛选素数
### 🍃思路分析 本题的核心任务是从给定的 `N` 个实验数据中找出素数,并按原顺序输出素数的个数以及这些素数。我们可以按照以下步骤实现: 1. 读取输入的实验数据数量 `N`。 2. 依次读取 `N` 个实验数据,并判断每个数据是否为素数。 3. 记录素数的个数和素数本身。 4. 输出素数的个数和素数。 ### 🛠️代码实现 ```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 # 读取输入的实验数据数量 N = int(input()) # 存储素数的列表 primes = [] # 依次读取 N 个实验数据 for _ in range(N): num = int(input()) if is_prime(num): primes.append(num) # 输出素数的个数 print(len(primes)) # 按原顺序输出素数 for prime in primes: print(prime) ``` ### 📋代码解释 1. **`is_prime` 函数**:该函数用于判断一个数是否为素数。素数是指大于 1 且只能被 1 和自身整除的正整数。对于小于 2 的数,直接返回 `False`;对于大于等于 2 的数,通过遍历从 2 到该数的平方根的所有整数,判断是否能整除该数。如果能整除,则该数不是素数,返回 `False`;否则,返回 `True`。 2. **读取输入**:首先读取实验数据的数量 `N`,然后使用 `for` 循环依次读取 `N` 个实验数据。 3. **判断素数并存储**:对于每个实验数据,调用 `is_prime` 函数判断是否为素数。如果是素数,则将其添加到 `primes` 列表中。 4. **输出结果**:输出素数的个数,即 `primes` 列表的长度。然后按原顺序输出 `primes` 列表中的素数。 ### ⚙️复杂度分析 - **时间复杂度**:$O(N\sqrt{M})$,其中 $N$ 是实验数据的数量,$M$ 是实验数据的最大值。对于每个实验数据,判断其是否为素数的时间复杂度为 $O(\sqrt{M})$。 - **空间复杂度**:$O(K)$,其中 $K$ 是素数的个数。主要用于存储素数的列表。 ######[AI写代码神器 | 643点数解答 | 2026-04-24 22:33:20]
- C++实现单门课程成绩管理系统:教师学生双身份操作全解析(GPT | 6361点数解答 | 2024-05-24 02:01:02)562
- C++ 实现超实用单门课程成绩管理系统,教师学生灵活使用! (GPT | 68点数解答 | 2024-05-24 10:17:09)348
- C++实现:功能完备的单门课程成绩管理系统(GPT | 4293点数解答 | 2024-05-24 10:20:03)390
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)485
- Java代码实现从JSON数据中提取ID,涉及“数据”与“项目 - 知识库”结构(字节豆包 | 603点数解答 | 2025-04-15 22:48:51)251
- C++ 实现:计算一排鹅与最高、最矮鹅的身高差及代码详解(字节豆包 | 549点数解答 | 2025-11-16 20:19:06)98
- 编程揭秘:计算 𝑛! 在 𝑃 进制下末尾零个数的方法与代码实现(DeepSeek | 549点数解答 | 2026-01-11 17:49:54)60
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)367
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)437
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)430
- Python爬虫:多页图片爬取与本地保存全流程揭秘(字节豆包 | 119点数解答 | 2025-01-05 12:49:42)271
- Python 网页图片爬取代码分析与优化建议:异常处理、路径优化及爬取规则遵守(字节豆包 | 172点数解答 | 2025-01-05 12:50:16)238