题目描述
amiloac给你两个数n,m,输出一个n∗m的矩阵,其中每个数必须为一个小于50质数,且任意两个相邻的数的和必须为质数。矩阵中允许存在相同的数字。
一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数,否则称为合数(规定1既不是质数也不是合数)。
对于矩阵元素a[x][y]称其上下左右四个位置a[x][y+1],a[x][y−1],a[x+1][y],a[x−1][y]与它是``相邻''的。
输入描述:
两个整数n,m(1≤n,m≤1000)。
输出描述:
输出一个n*m的矩阵,其中每个数必须为一个小于50的质数,且任意两个相邻的数的和必须为质数。
示例1
输入
1 2
输出
2 11
说明
2和11都是质数,2+11=13,且13也为质数。 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数; 否则称为合数(规定1既不是质数也不是合数)。
本题只需考虑输出2 11 即可:
#include<bits/stdc++.h>
using namespace std;const int N=10;
int n,op,t;int main()
{
int n,m;
cin >> n >> m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(i%2!=1)
{
if(j%2!=1)
cout<< 2 <<" ";
else
cout<< 11 <<" ";
}
if(i%2==1)
{
if(j%2==1)
cout<< 2 <<" ";
else
cout<< 11 <<" ";
}
}
cout<<endl;
}
return 0;
}