B. Prime Square
题目大意:输出一个方阵,使方阵每行每列的和都是素数,同时方阵的组成不能是素数
解法:
- 我原来的思路是素数筛,然后发现太麻烦,方阵中允许重复数字出现,我无法用代码实现
- 正确思路:方阵行列最小为2,找到两个数字a,b,是的a+b=素数,吧这两个数字放进数组中,然后对这个数组全排列输出。对此可以建立一个方阵,行列相同
1 |
2 |
3 |
4 |
2 |
3 |
4 |
1 |
3 |
4 |
1 |
2 |
4 |
1 |
2 |
3 |
代码如下:
import java.util.*; public class B1 { public static void main(String args[])throws java.lang.Exception { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); while(t-->0) { int n = sc.nextInt(); int arr []= new int[n]; arr[0]=1;arr[1]=1; int count=0; for(int i=0;i<n;i++) { int j=i; count=0; while(count<n) { System.out.print(arr[j]+" "); j++; j=j%n;//保证下标不越界 count++; } System.out.println(); } } } }