📅  最后修改于: 2023-12-03 15:41:38.014000             🧑  作者: Mango
本程序用于计算给定矩阵中所有素数所在的行数和列数。
def find_prime_rows_cols(matrix):
"""
寻找包含素数的行和列
:param matrix: 二维列表
:return: 包含素数的行和列
"""
rows = len(matrix)
cols = len(matrix[0])
row_flags = [0] * rows
col_flags = [0] * cols
prime_nums = []
# 遍历矩阵中的每个数,判断它是否为素数
for i in range(rows):
for j in range(cols):
if is_prime(matrix[i][j]):
# 如果一个数是素数,则将该数所在行和列的标记值都加 1
row_flags[i] += 1
col_flags[j] += 1
# 找到包含素数的行和列
for i in range(rows):
if row_flags[i] == cols:
prime_nums.append('Row {}'.format(i + 1))
for j in range(cols):
if col_flags[j] == rows:
prime_nums.append('Col {}'.format(j + 1))
return prime_nums
def is_prime(num):
"""
判断一个数是否为素数
:param num: 整数
:return: True or False
"""
if num <= 1:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
给定矩阵:
matrix = [[2, 3, 5], [7, 11, 13], [17, 19, 23]]
调用 find_prime_rows_cols(matrix)
的结果为:
['Row 1', 'Col 2', 'Col 3']
说明在该矩阵中,第 1 行、第 2 列、第 3 列均包含素数。