3679. 素数矩阵
输入样例:
2
4
2
输出样例:
4 6 8 1
4 9 9 9
4 10 10 65
1 4 4 4
1 1
1 1
#include <bits/stdc++.h>
using namespace std;
#define int long long int
int n,k,x,T,p,y;
const int N=1e2+5;
int a[N];
signed main(){
cin>>T;
while(T--){
cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i==j||j==(i+1)%n)cout<<"1 ";
else cout<<"0 ";
}
cout<<endl;
}
}
return 0;
}
// 0 1显然都不是负数,只填充01,不用判断是否是负数
// 2显然是质数
// 1 1 0 0
// 0 1 1 0
// 0 0 1 1
// 1 0 0 1
构造方式二
#include <bits/stdc++.h>
using namespace std;
#define int long long int
int n,k,x,T,p,y;
const int N=1e2+5;
int a[N][N];
bool isprime(int s){
if(s<2)return false;
int ss=sqrt(s);
for(int i=2;i<=ss;i++){
if(s%i==0)return false;
}
return true;
}
signed main(){
cin>>T;
while(T--){
cin>>n;
k=1;
int m=1;
while(!(isprime(n-1+k)&&!isprime(k)))k++;
while(!(isprime((n-1)*k+m)&&!isprime(m)))m++;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i==0){
if(j==n-1)cout<<m<<' ';
else cout<<k<<" ";
}
else{
if(j==n-1)cout<<k<<' ';
else cout<<"1 ";
}
}
cout<<endl;
}
}
return 0;
}
// 0 1显然都不是负数,只填充01,不用判断是否是负数
// 2显然是质数
// 1 1 0 0
// 0 1 1 0
// 0 0 1 1
// 1 0 0 1