📅  最后修改于: 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 函数统计它们的个数,最后计算差值并返回相应的字符串。