📅  最后修改于: 2023-12-03 14:57:34.819000             🧑  作者: Mango
本程序旨在计算给定树中权重为质数的节点,并以 Markdown 格式返回结果。以下是程序的介绍和示例使用方法。
is_prime()
,用于判断一个数是否为质数。find_prime_nodes()
,用于递归地遍历树的所有节点,并找出权重为质数的节点。find_prime_nodes()
。find_prime_nodes()
函数得到结果。import math
def is_prime(num):
"""
判断一个数是否为质数
"""
if num < 2:
return False
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
return False
return True
def find_prime_nodes(node, result):
"""
递归地找出树中权重为质数的节点
"""
if is_prime(node.weight):
result.append(node)
for child in node.children:
find_prime_nodes(child, result)
# 调用示例
root_node = Node(weight=10, children=[
Node(weight=5),
Node(weight=7, children=[
Node(weight=2),
Node(weight=9)
]),
Node(weight=12, children=[
Node(weight=3),
Node(weight=16)
])
])
result = []
find_prime_nodes(root_node, result)
# 输出结果
for node in result:
print(node.weight)
本次运行的结果如下:
5
7
2
3
以上结果表示给定树中权重为质数的节点分别为 5、7、2 和 3。