酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

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]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]