📜  查询给定范围内的合成数和素数之间的差(1)

📅  最后修改于: 2023-12-03 14:55:37.745000             🧑  作者: Mango

查询给定范围内的合成数和素数之间的差

本程序旨在查询给定范围内的合成数和素数之间的差。具体实现方式是先生成出所有的素数和合数,再对比它们的个数和总和。

使用方法
输入形式

本程序接受两个整数作为输入,分别代表查询范围的上下限。其中,下限必须为大于等于 2 的正整数,且上限必须大于等于下限。

输出形式

程序输出给定范围内的合成数个数、素数个数、以及合成数和素数之间的差值。并以 markdown 格式打印输出。

返回值解释

本程序返回一个字符串,其中包含了上述的输出形式。具体如下:

合成数个数:$n_1$
素数个数:$n_2$
合成数和素数之间的差:$delta$

其中,$n_1$ 和 $n_2$ 分别是给定范围内的合成数和素数的个数,$delta$ 是二者之间的差值。

代码实现
def count_prime_and_composite_numbers(lower, upper):
    primes = []
    composites = []
    for num in range(lower, upper + 1):
        if num < 2:
            continue
        for i in range(2, int(num ** 0.5) + 1):
            if num % i == 0:
                composites.append(num)
                break
        else:
            primes.append(num)

    num_primes = len(primes)
    num_composites = len(composites)

    return f"合成数个数:{num_composites}\n素数个数:{num_primes}\n合成数和素数之间的差:{num_primes - num_composites}"

本程序主要运用了 Python 的特性,即利用列表推导式生成出所有的素数和合数,并通过 len 函数统计它们的个数,最后计算差值并返回相应的字符串。