2991462923@qq.c 发表于 2023-6-4 19:12:55

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

【问题描述】

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

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

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



【样例输出】



请问这个题有什么简单易懂的方法吗

sfqxx 发表于 2023-6-4 19:16:55

本帖最后由 sfqxx 于 2023-6-4 19:31 编辑

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

下面是 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

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

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

# 找出所有素数并输出
primes = find_primes(numbers)
print(primes)

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

有用请设置最佳答案{:10_254:}

陶远航 发表于 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 =
print(find_primes(nums))# 输出
以上代码定义了一个名为 find_primes 的函数,接受一个列表参数 nums,返回一个新的列表,其中仅包含输入列表中的素数。可以通过传递给该函数样例输入所示的列表 nums 来测试该函数,并通过输出结果 来验证它是否正确。

sfqxx_小 发表于 2023-6-4 19:31:18

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

下面是 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

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

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

# 找出所有素数并输出
primes = find_primes(numbers)
print(primes)

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

有用请设置最佳答案{:10_254:}

2991462923@qq.c 发表于 2023-6-4 20:07:35

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

请问第5行是什么意思

sfqxx 发表于 2023-6-4 20:13:28

2991462923@qq.c 发表于 2023-6-4 20:07
请问第5行是什么意思

isdkz 发表于 2023-6-4 20:30:45

以下是一个使用Python编写的简单算法。在这个代码中,我们首先创建了一个名为 is_prime 的函数,它可以判断一个数是否是素数。然后我们在输入列表中遍历每个元素,如果该元素是素数,我们就将其添加到新的列表中。

def is_prime(n):
    if n <= 1:
      return False
    if n <= 3:
      return True
    if n % 2 == 0 or n % 3 == 0:
      return False
    i = 5
    while (i * i <= n):
      if (n % i == 0 or n % (i + 2) == 0):
            return False
      i += 6
    return True

def find_primes_in_list(lst):
    primes = []
    for num in lst:
      if is_prime(num):
            primes.append(num)
    return primes

input_list = # 输入的自然数列表
output_list = find_primes_in_list(input_list)# 找出列表中的素数
print(output_list)# 输出素数列表


运行此代码后,应该会打印出 ,这是输入列表中的所有素数。

该代码会从头到尾遍历输入的列表,对每个元素检查是否为素数,如果是,则添加到结果列表中。 is_prime函数用于判断一个数是否为素数,这个函数采用了一种常用的快速判断素数的方法。
页: [1]
查看完整版本: 找出自然数列表中的素数,并放入另外一个列表,然后输出找出的素数