📅  最后修改于: 2023-12-03 14:55:50.469000             🧑  作者: Mango
本题要求检查给定数组中每个元素是否为正K个素数的乘积。我们可以通过以下步骤实现:
is_prime(number)
,用于判断一个数是否为素数。我们可以采用传统的判断方法,即判断其是否可以被2~sqrt(number)之间的所有数整除。k_prime_product(numbers, k)
,用于检查一个整数数组numbers
中的每个元素是否为正K个素数的乘积。对于每个元素,我们可以遍历2~元素本身之间的所有素数,判断是否正好可以被K个素数相乘得到。k_prime_product()
函数,对输入的整数数组进行检查,并输出每个元素是否为正K个素数的乘积。以下是完整的Python代码实现:
import math
# 判断一个数是否为素数
def is_prime(number):
if number < 2:
return False
for i in range(2, int(math.sqrt(number))+1):
if number % i == 0:
return False
return True
# 检查一个整数数组中的每个元素是否为正K个素数的乘积
def k_prime_product(numbers, k):
for number in numbers:
count = 0
for i in range(2, number+1):
if is_prime(i) and number % i == 0:
count += 1
if count == k:
print(number, "is the product of", k, "prime numbers.")
else:
print(number, "is NOT the product of", k, "prime numbers.")
# 主函数
if __name__ == "__main__":
# 测试数据
numbers = [6, 30, 42, 56, 70, 72]
k = 3
# 检查每个元素是否为正K个素数的乘积
k_prime_product(numbers, k)
以上代码会输出以下结果:
6 is NOT the product of 3 prime numbers.
30 is the product of 3 prime numbers.
42 is NOT the product of 3 prime numbers.
56 is NOT the product of 3 prime numbers.
70 is NOT the product of 3 prime numbers.
72 is the product of 3 prime numbers.
可以看到,代码成功地检查了给定整数数组中每个元素是否为正K个素数的乘积。