米勒-拉賓檢驗

程式編寫日期: 2008年3月19日

程式 (176 bytes)

Mem clear: ?→B: B-1→Y: ?→A: Fix0:

Lbl 0: Y÷2 - . 5: Rnd: Y=2Ans => X + 1→X => Y÷2→Y => Goto 0:

Lbl 1: 1→C: X - 1→X: 0>X => Goto 4: 2^XY→M:  A→D: Lbl 2:

D ÷ B - . 5: Rnd: D - BAns→D: M ÷ 2→M: Rnd:

M=Ans => Goto 3: DC => DC ÷ B - . 5 => Rnd:

DC - BAns→C: . 5M-: Lbl 3: D2→D: M => Goto 2:

C≠B^(X≠0) => C ≠ B - 1 => Goto 1: Lbl 4: Norm 1

 

例題1: 試用米勒-拉賓檢驗,檢測 3127 是否質數。

按 Prog 1 再按 3127 EXE (輸入檢查的數值) 2 EXE (嘗試A=2進行檢測,顯示1為合成數)

 

例題2: 試用米勒-拉賓檢驗,檢測 37 是否質數。

按 Prog 1 再按 37 EXE (輸入檢查的數值) 2 EXE (嘗試A=2進行檢測,顯示0表示37可能為質數)

 

參考資料:

http://planetmath.org/encyclopedia/MillerRabinPrimeTest.html

http://en.wikipedia.org/wiki/Miller-Rabin_primality_test

 

返回 fx-3650P及SC-185 程式集