📌  相关文章
📜  计算可以使用给定数字的数字形成的所有素数(1)

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

计算可以使用给定数字的数字形成的所有素数

本程序实现了从给定数字中,选取部分或全部数字所组成的所有数中,判断其是否为素数,并返回所有素数的列表。

使用方法

首先,导入我们的prime_number模块:

import prime_number

接下来,调用prime_number.find_primes(num)函数,其中num为给定数字,数据类型应为字符串。

例如,我们要找到由数字2357所组成的所有素数:

num = '2357'
result = prime_number.find_primes(num)
print(result)  # 输出 ['2', '3', '5', '7', '23', '37', '53', '73', '2357']
实现方法

对于每个组合的数字,我们采用判断该数字是否为素数的方法来筛选素数。

具体地,我们用for循环逐次选取数字,将其转换为整型,然后对该数字进行素数判断。对于判断素数,我们可以使用以下代码实现:

def is_prime(num):
    if num <= 1:
        return False
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            return False
    return True

最终,我们得到的计算素数的主要代码如下:

def find_primes(num):
    digits = list(num)
    length = len(digits)
    primes = []
    for i in range(1, length + 1):
        for j in range(length - i + 1):
            sub_num = ''.join(digits[j:j+i])
            if is_prime(int(sub_num)):
                primes.append(sub_num)
    return primes

这里,我们首先将给定数字转换为列表,然后在for循环中,逐次选取从1到全选的数字范围,将其转换为整型后判断是否为素数,若是,则将其加入素数列表并返回。