📜  数组中的最小和最大素数(1)

📅  最后修改于: 2023-12-03 15:26:11.611000             🧑  作者: Mango

数组中的最小和最大素数

在数组中查找最小和最大素数是程序员常常需要解决的问题。素数是只能被1和自身整除的自然数。以下是一个解决这个问题的示例算法:

算法思路
  1. 定义一个 functions is_prime() 来判断一个数字是否为素数。
  2. 遍历数组,对于每个元素,如果它是素数,则与 current_min 和 current_max 比较,更新它们。
  3. 最终返回 current_min 和 current_max。
代码实现
import sys

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

def find_min_max_primes(arr):
    current_min = sys.maxsize
    current_max = -sys.maxsize
    for num in arr:
        if is_prime(num):
            if num < current_min:
                current_min = num
            if num > current_max:
                current_max = num
    return current_min, current_max
测试样例
arr = [2, 3, 6, 7, 9, 10, 13, 17]
min_prime, max_prime = find_min_max_primes(arr)
print("Minimum Prime: ", min_prime)
print("Maximum Prime: ", max_prime)
输出结果
Minimum Prime: 2
Maximum Prime: 17

以上就是一个简单的算法来寻找数组中最小和最大的素数。如果需要寻找数组中所有的素数,可以在 is_prime() 方法中增加对数字素性的检验,并在循环中添加对这个方法的调用。