ProjectEuler 437 - Fibonacci primitive roots

开学了~

Problem

[1,108][1, 10^8] 内满足存在一个原根 gg1+gg2modp1 + g \equiv g^2 \mod{p} 的素数 pp 的和。

Solution

首先我们注意到 1+gg2modp1 + g \equiv g^2 \mod{p} 这个方程还是可以用普通的方法去解:

g1±52modpg \equiv \frac{1 \pm \sqrt{5}}{2} \mod{p}

如果 5\sqrt{5} 在模 pp 下不存在的话肯定无解。如何判断存不存在?请关注 二次剩余 以及 勒让德符号

然后怎么解 5\sqrt{5} 呢?我们有 Tonelli–Shanks Algorithm ……

对于每个质数暴力判断这两个数是否是原根就好了。

nonsense

我就不告诉你我是写了个暴力跑了 3h40min 跑出来的。

不得不吐槽上学几件事。

计算机入门!全英文授课!作业要用 LaTeX !还要用英文!

微积分!从头开始学习一个数学系统!概念什么的给我去死吧!

抽象代数!我终于明白了 Z/nZ\mathbb{Z}/n \mathbb{Z} 是什么意思了……那个除号就是表示 除法 商环(你可以理解为环与环之间的除法)啊!

线性代数!老师讲“交换矩阵的行和列不改变矩阵行列式”讲了 20min ……

体育!分级考试要考引体向上!只能做三个的哭了……