题目
题意:给定n,构造一个
n
∗
n
n*n
n∗n的矩阵,使得
(1)矩阵里的每个元素都不超过1e5
(2)矩阵里的每个元素都不是素数
(3)矩阵里的每行、每列的和都是素数
思路:取一个合数x,使得x+n-1是素数。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn = 110;
int a[maxn][maxn];
bool Prime(int n) {
int m = sqrt(n);
for (int i = 2; i <= m; ++i) {
if (n % i == 0) return false;
}
return true;
}
int main() {
int t;
scanf("%d", &t);
while (t--) {
int n;
scanf("%d", &n);
int x = 1;
while (!Prime(x + n -1)) {
while(Prime(++x));
}
for (int i = 1;i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
if (i == j) {
printf("%d",x);
} else {
printf("1");
}
if (j == n) printf("\n");
else printf(" ");
}
}
}
}