|
对于4k+1的素数p,p可以写成两数的平方和,p=a^2+b^2, 其中 a 为奇数,b 为偶数。然后对 a+bI 进行连分式PQa算法展开,何时迭代中点分别为 2i, -2i , 2 , -2, -1。
例如 13+22I 迭代中点为 2i; 21+10I 迭代中点为 -2i;9+4I迭代中点为 2 ;3+20I 迭代中点为 -2;21+4I 迭代中点为 -1
以下给出迭代算法
- Clear[t, a]; d = 13 + 22 I; P[0] = 0; Q[0] = 1;t[0] = (P[0] + Sqrt[d])/Q[0]a[0] = Round[t[0]];i = 0; While[t[i] != 1/(t[0] - a[0]) || i == 1, P[i + 1] = Q[i] a[i] - P[i]; Q[i + 1] = (d - P[i + 1]^2)/Q[i]; t[i + 1] = (P[i + 1] + Sqrt[d])/Q[i + 1]; a[i + 1] = Round[t[i + 1]]; (*If[Q[i+1]\[Equal]Q[i]||P[i+1]\[Equal]P[i],Break[]];*) Print[{i, Q[i], P[i], a[i]}] i++];
复制代码 |
|