解析:
由于 1 不是质数,所以我们令每一行的数都相差 1
对于行间,分为 n、m之中有存在偶数和都为奇数两种情况。
如果n、m存在偶数,假设m为偶数。
如果都为奇数,则:
cpp
#include<bits/stdc++.h>
using namespace std;
//const int N=
int t,n,m;
int main(){
scanf("%d",&t);
while(t--){
scanf("%d%d",&n,&m);
if(n%2==0){
int k=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)
printf("%d ",i+(j-1)*n);
puts("");
}
}
else if(m%2==0){
int k=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)
printf("%d ",k++);
puts("");
}
}
else{
int k=1;
for(int i=1;i<=n;i++){
if(i%2==0){
k+=m;
continue;
}
for(int j=1;j<=m;j++)
printf("%d ",k++);
puts("");
}
k=1;
for(int i=1;i<=n;i++){
if(i%2!=0){
k+=m;
continue;
}
for(int j=1;j<=m;j++)
printf("%d ",k++);
puts("");
}
}
puts("");
}
return 0;
}