Skip to main content

洛谷 P4718 【模板】Pollard-Rho

Miller Rabin 算法是一种高效的质数判断方法。虽然是一种不确定的质数判断法,但是在选择多种底数的情况下,正确率是可以接受的。

Pollard rho 是一个非常玄学的方式,用于在 O(n1/4)O(n^{1/4}) 的期望时间复杂度内计算合数 nn 的某个非平凡因子。事实上算法导论给出的是 O(p)O(\sqrt p)ppnn 的某个最小因子,满足 ppn/pn/p 互质。但是这些都是期望,未必符合实际。但事实上 Pollard rho 算法在实际环境中运行的相当不错。

这里我们要写一个程序,对于每个数字检验是否是质数,是质数就输出 Prime;如果不是质数,输出它最大的质因子是哪个。