-2
我想通過實現幾個算法來學習計劃。fermat分解的計劃代碼
FermatFactor(N): // N should be odd
a ← ceil(sqrt(N))
b2 ← a*a - N
while b2 isn't a square:
a ← a + 1 // equivalently: b2 ← b2 + 2*a + 1
b2 ← a*a - N // a ← a + 1
endwhile
return a - sqrt(b2) // or a + sqrt(b2)
我想在計劃中實現上述算法。我困在while循環中。任何幫助,將不勝感激。謝謝
非常感謝。我更喜歡c#程序員。理解方案對我來說有點困難。 – leaner
你可以使用'a0'和'b0'的內部定義,但'let *'也可以。另外,我個人更喜歡使用'integer-sqrt'(或者稱爲R6RS中的'exact-integer-sqrt'),以便不涉及浮點數。 –
感謝您的意見 – leaner