B3858 [语言月赛 202309] 悬线
题目背景
我们定义一个数字是质数,当且仅当它的因子仅有 $1$ 和自身。特别的,$1$ 不是质数。
题目描述
给定一个 $n \times m$ 的数字阵。约定第 $i$ 行第 $j$ 列上的数用 $(i,j)$ 表示。
我们称以第 $i$ 行第 $j$ 列的格子为底的**悬线**的长度是最大的 $k$,满足 $k \leq i$ 且 $(i,j), (i-1,j), (i-2,j),\dots(i-k+1,j)$ 这 $k$ 个数都是**质数**。特别的,如果 $(i, j)$ 本身不是质数,称以第 $i$ 行第 $j$ 列为底的悬线长度为 $0$。
对于每个格子,请你求出以它为底的悬线长度。
输入格式
**本题单个测试点内有多组测试数据**。输入的第一行是一个整数,表示数据组数 $T$。
对每组数据,按如下格式输入:
每组数据第一行是两个整数,表示数字阵的行数 $n$ 和列数 $m$。
接下来 $n$ 行,每行 $m$ 个整数,第 $i$ 行第 $j$ 个整数表示 $(i,j)$。
输出格式
对每组数据,输出 $n$ 行,每行 $m$ 个用单个空格隔开的整数。第 $i$ 行第 $j$ 个数表示以第 $i$ 行第 $j$ 列的格子为底的悬线长度。
说明/提示
### 数据规模与约定
- 对 $20\%$ 的数据,$n = 1$。
- 对 $50\%$ 的数据,$(i,j) \leq 100$。
- 对 $80\%$ 的数据,$(i,j) \leq 1000$。
- 对 $100\%$ 的数据,$1 \leq n, m \leq 200$,$1 \leq (i,j) \leq 10^5$,$1 \leq T \leq 15$。