建立随机数[100,299]列表,50个元素,没有重复数据(所用方法:每生成一个随机数后,判断其是否在列表中。使用其他方法答案不正确!),输出其中所有素数。使用语句:from random import* seed(10)
时间: 2024-03-03 09:47:22 浏览: 167
好的,我来回答你的问题。
以下是代码实现:
```python
from random import *
seed(10)
nums = []
while len(nums) < 50:
num = randint(100, 299)
if num not in nums:
nums.append(num)
print("随机数列表:", nums)
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
prime_nums = [num for num in nums if is_prime(num)]
print("素数列表:", prime_nums)
```
解释一下代码:
首先,我们使用 `from random import *` 导入随机数模块,并使用 `seed(10)` 设置随机数种子为 10。
接着,我们创建一个空列表 `nums`,并使用 `while` 循环来生成随机数,直到列表中有 50 个不重复的元素为止。在每次生成随机数时,我们使用 `if num not in nums:` 判断是否已经在列表中出现过,如果没有,就将其添加到列表中。
然后,我们定义 `is_prime` 函数来判断一个数是否为素数。在函数中,我们先判断如果这个数小于 2,就直接返回 `False`。否则,我们从 2 开始到这个数的平方根(向下取整)的范围内遍历,如果这个数能被其中的任何一个数整除,就返回 `False`,否则返回 `True`。
最后,我们使用列表推导式来筛选出所有素数,并将其存储到 `prime_nums` 列表中。最后输出随机数列表和素数列表即可。
希望能够帮助到你!
阅读全文