📌  相关文章
📜  教资会网络 | UGC-NET CS 2017 年 12 月 2 日 |问题 9(1)

📅  最后修改于: 2023-12-03 15:39:56.564000             🧑  作者: Mango

UGC-NET CS 2017 年 12 月 2 日 | Question 9

简介

题目要求我们读取一个矩阵,对其中的质数进行判断。如果某个元素是质数,那么就将它替换为它的平方根的整数部分。如果不是质数,则将其替换为0。

实现思路
  • 定义一个函数is_prime(n)来判断一个数是否为质数。
  • 读取矩阵,并遍历每个元素,判断是否为质数。
  • 如果是质数,就将它替换为它的平方根的整数部分;如果不是,就将其替换为0。
  • 输出处理过的矩阵。
代码实现
import math

# 判断是否为质数
def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(math.sqrt(n))+1):
        if n % i == 0:
            return False
    return True

# 处理矩阵
def process_matrix(matrix):
    for i in range(len(matrix)):
        for j in range(len(matrix[i])):
            if is_prime(matrix[i][j]):
                matrix[i][j] = int(math.sqrt(matrix[i][j]))
            else:
                matrix[i][j] = 0
    return matrix

# 测试代码
matrix = [[11, 12, 13], [14, 15, 16], [17, 18, 19]]
print(process_matrix(matrix))
返回结果
[[3, 0, 3], [0, 0, 0], [4, 0, 4]]
解释

输入的矩阵为:

[
  [11, 12, 13],
  [14, 15, 16],
  [17, 18, 19]
]

处理后的矩阵为:

[
  [3, 0, 3],
  [0, 0, 0],
  [4, 0, 4]
]

其中,11、13、17、19是质数,所以被替换为它们的平方根的整数部分。其他的元素不是质数,所以都被替换为0。