我是数论的忠实拥护者。数论中的一件大事是模块化算术。当且仅当m \ mid ab时,定义为。一个有趣的事情是提高幂:尤其是当模数是质数时。特别地,已经证明,如果a和m是相对质数(除了1之外没有其他共同因素),则存在一个数e,使得a ^ e \ equiv 1 \ mod m。
我将通过一个例子来说明什么是练习。取模数。程序或功能的可能输出为:
3 2 6 4 5 1
2 4 1 2 4 1
6 1 6 1 6 1
4 2 1 4 2 1
5 4 6 2 3 1
1 1 1 1 1 1
每行是该行中第一个数字的幂的列表:第一行是,等效于模。上方正方形的第二行是的幂,以此类推,直到最后一行,都是幂。
这是一个神奇的模平方,因为:
- 正方形是对称的;也就是说,第列与第行相同。
- 所有值到至少出现一次。
以下是的唯一其他有效输出,从幂开始:
5 4 6 2 3 1
4 2 1 4 2 1
6 1 6 1 6 1
2 4 1 2 4 1
3 2 6 4 5 1
1 1 1 1 1 1
挑战
创建一个给定素数的函数或程序,p
输出一个神奇的模平方,即具有边长的平方p-1
,这样,每一行都是该行中第一个元素的连续幂的列表,各列也是如此。0
和之间的所有数字都p
必须出现,并且正方形只能包含该范围内的数字。
输入是数字或字符串,输出可以是ascii,矩阵,数组数组(任何合理的格式)。
这是代码高尔夫球,因此最短的代码获胜。