#sHENSOUybttg0103id696. 1446:素数方阵

1446:素数方阵

1446:素数方阵

时间限制: 1000 ms
内存限制: 65536 KB
提交数: 2535
通过数: 748

题目描述

在下面的方格中,每行,每列,以及两条对角线上的数字可以看作是五位的素数。方格中的行按照从左到右的顺序组成一个素数,而列按照从上到下的顺序。两条对角线也是按照从左到右的顺序来组成。

这些素数各个数位上的和必须相等。

左上角的数字是预先定好的。

一个素数可能在方阵中重复多次。

如果不只有一个解,将它们全部输出(按照这 2525 个数字组成的 2525 位数的大小排序)。

一个五位的素数开头不能为 00(例如:0000300003 不是五位素数)

输入格式

一行包括两个被空格分开的整数:各个位的数字和 和左上角的数字。

输出格式

对于每一个找到的方案输出 55 行,每行 55 个字符,每行可以转化为一个 55 位的质数。在两组方案中间输出一个空行。如果没有解就单独输出一行 "NONE"

输入输出样例

11 1
11351
14033
30323
53201
13313

11351
33203
30323
14033
33311

13313
13043
32303
50231
13331

提示

  • 需要找到所有满足条件的 5×55 \times 5 方阵,其中每行、每列、两条对角线都是 55 位素数,且各位数字之和等于给定的和,左上角数字给定。
  • 五位数的素数范围是 10000100009999999999,且不能以 00 开头。
  • 可以预处理出所有满足数字和的五位素数,然后进行搜索,注意剪枝。