为了找到 整数 和 使得
(1)
|
(费马因式分解法的一种变形),在这种情况下,有 50% 的几率 是 的一个 因子,选择一个 随机 整数 ,计算
(2)
|
并尝试分解 。如果 不容易分解(直至某个小的试除数 ),尝试另一个 。在实践中,试用的 通常取为 ,其中 , 2, ..., 这使得可以使用 二次筛法 因式分解方法。继续寻找并分解 ,直到找到 ,其中 是 素数计数函数。现在对于每个 ,写出
(3)
|
并形成 指数向量
(4)
|
现在,如果对于任何 , 都是偶数,那么 是一个 平方数,并且我们找到了方程 (◇) 的解。否则,寻找一个 线性组合 ,使得所有元素都是偶数,即,
(5)
|
(6)
|
由于这必须仅在模 2 下求解,因此可以通过将 s 替换为
(7)
|
高斯消元法 然后可以用来求解
(8)
|
对于 ,其中 是一个等于 (mod 2) 的 向量。一旦 已知,那么我们有
(9)
|
其中乘积是对所有 取的,对于这些 。两边都是 完全平方数,因此我们有 50% 的几率,这会产生 的一个非平凡因子。如果不是,那么我们继续使用不同的 并重复该过程。不能保证此方法会产生因子,但在实践中,它比任何使用试除数的方法产生因子的速度都快。它特别适合并行处理,因为每个处理器都可以处理不同的 值。