提示
提示 1查看
当 d 很小(`d < n^(1/4)/3`)时,e/n 连分数展开的渐近分数 k/d 中会出现真正的 k 和 d
提示 2查看
一边取 `a = 分子 // 分母`,一边用 `num = a×num1 + num0`、`den = a×den1 + den0` 得到渐近分数 num/den;把分子 num 当作 k 的候选、分母 den 当作 d 的候选,检查 `(e×den − 1)` 能否被 num 整除
提示 3查看
令 `φ = (e×d − 1)/k`,若 `x² − (n − φ + 1)x + n = 0` 的判别式是完全平方数(用 `math.isqrt` 检查),候选就是正确的