题目背景
琪露诺:我知道了!答案一定是1!
露米娅:什么鬼啊(汗),你还是再想想去吧。。我先把最后一道题给你,这是一道大学数学题哦
题目描述
露米娅:大妖精想构造一个 n 元有限域,元素用 0∼n−1 的整数表示。
有限域需要满足以下条件:
-
有加法单位元 o ,满足对于任意元素 a , o+a=a+o=a;
-
对于任意元素 a ,存在加法逆元 a−1 ,使得 a+a−1=a−1+a=o;
-
有不同于加法单位元 o 的乘法单位元 i ,满足对于任意元素 a , i×a=a×i=a;
-
对于任意非加法单位元元素 a ,存在乘法逆元 a−1 ,使得 a×a−1=a−1×a=i;
-
对于任意元素 x , y ,有加法交换律,即 x+y=y+x;
-
对于任意元素 x , y ,有乘法交换律,即 x×y=y×x;
-
对于任意元素 x , y , z ,有加法结合律,即 (x+y)+z=x+(y+z);
-
对于任意元素 x , y , z ,有乘法结合律,即 $ ( x \times y ) \times z = x \times ( y \times z ) $;
-
对于任意元素 x , y , z ,有乘法分配律,即 (x+y)×z=x×z+y×z。
大妖精当然会做啦,但是他想考考你。
在输出中加法单位元 o 即为 0,乘法单位元 i 即为 1。
输入格式
一个正整数 n(2≤n≤350)。
输出格式
第一行输出一个整数 k ,若存在 n 元有限域则 k=0 ,否则 k=−1。
若 k=0 则:
-
接下来 n 行输出一个 n 元有限域的加法表,第 i+1 行第 j+1 列上的数代表有限域中 i+j 的运算结果;
-
接下来 n 行输出一个 n 元有限域的乘法表,第 i+1 行第 j+1 列上的数代表有限域中 i×j 的运算结果。
共输出 n×2+1 行。
upd1: SPJ 非常严格,请不要在行末输出多余空格(答案文件末尾的换行还是会自动忽略的)
upd2: 正解文件比较大,洛谷可能会一直 judging... 如果遇到这种情况请直接提交源代码
2
0
0 1
1 0
0 0
0 1
提示
测试点 |
n 的范围 |
特殊性质 |
1 |
n=3 |
n 是质数 |
2 |
n=4 |
n 是 2 的整数次方 |
3 |
n=6 |
无 |
4 |
n=8 |
n 是 2 的整数次方 |
5 |
n=9 |
无 |
6 |
n=19 |
n 是质数 |
7 |
n=89 |
8 |
n=181 |
9 |
n=233 |
10 |
n=25 |
n 是质数的平方 |
11 |
n=121 |
12 |
n=169 |
13 |
n=27 |
无 |
14 |
n=143 |
15 |
n=128 |
n 是 2 的整数次方 |
16 |
n=81 |
无 |
17 |
n=125 |
18 |
n=243 |
19 |
n=256 |
n 是 2 的整数次方 |
20 |
n=343 |
无 |