

解析:
由于 1 不是质数,所以我们令每一行的数都相差 1
对于行间,分为 n、m之中有存在偶数和都为奇数两种情况。
如果n、m存在偶数,假设m为偶数。

如果都为奇数,则:
- #include
- 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;
- }