#B3858. [语言月赛 202309] 悬线

[语言月赛 202309] 悬线

题目背景

我们定义一个数字是质数,当且仅当它的因子仅有 11 和自身。特别的,11 不是质数。

题目描述

给定一个 n×mn \times m 的数字阵。约定第 ii 行第 jj 列上的数用 (i,j)(i,j) 表示。

我们称以第 ii 行第 jj 列的格子为底的悬线的长度是最大的 kk,满足 kik \leq i(i,j),(i1,j),(i2,j),(ik+1,j)(i,j), (i-1,j), (i-2,j),\dots(i-k+1,j)kk 个数都是质数。特别的,如果 (i,j)(i, j) 本身不是质数,称以第 ii 行第 jj 列为底的悬线长度为 00

对于每个格子,请你求出以它为底的悬线长度。

输入格式

本题单个测试点内有多组测试数据。输入的第一行是一个整数,表示数据组数 TT

对每组数据,按如下格式输入:

每组数据第一行是两个整数,表示数字阵的行数 nn 和列数 mm
接下来 nn 行,每行 mm 个整数,第 ii 行第 jj 个整数表示 (i,j)(i,j)

输出格式

对每组数据,输出 nn 行,每行 mm 个用单个空格隔开的整数。第 ii 行第 jj 个数表示以第 ii 行第 jj 列的格子为底的悬线长度。

1
3 3
1 2 3
4 5 6
7 8 9
0 1 1
0 2 0
1 0 0

提示

数据规模与约定

  • 20%20\% 的数据,n=1n = 1
  • 50%50\% 的数据,(i,j)100(i,j) \leq 100
  • 80%80\% 的数据,(i,j)1000(i,j) \leq 1000
  • 100%100\% 的数据,1n,m2001 \leq n, m \leq 2001(i,j)1051 \leq (i,j) \leq 10^51T151 \leq T \leq 15