对于任何数与11 的乘积,其奇数总位和与偶数位总和一样。比如25乘11得275,7 = 2 + 5。
对于已知合数pq, 如果我们把p 表示为11, 那pq的奇数位总和就会与偶数位总和一致。 为了把p 表示为11, 我们不能用十进制或二进制,要采用p-1进制。
假设n进制下pq=KMP,是个三位数:
即
显然一般情况下 M不等于K+P。
令n-x = p – 1, 并且假设K位保持不变,
即
Pq = K*(n-x)*(n-x)+ M1 * (n-x)+ P1
并且 M1 =K+P1
那么
M1 = M + 2*K*x
P1 = P + M*x + K*x*x
即
M + 2*K*x = K + P + M*x + K*x*x
是个一元二次方程,求解即完成pq的 因数分解。
比如61*83 = 5063
试取70进制,
K=1, M=2, P = 23,
-22 = x*x,
无解。
为啥?
因为K位不变,但M位有进位。或者说P1>70.
试了140>P1>70, 也无解。
再试P1>140-2*x,进2,
M1 = M + 2 * K *x + 2;
P1 = P + M*x + K*x*x – 2 * 70 + 2 * x
X*x + 2x – 120 = 0;
X = 10, p = 70 – 10 + 1 = 61
完成因数分解。
主要计算都在测试
欢迎指正