擴充最大公因數
程式編日期: 2006年9月4日
程式可以計算兩個正整數a及b的最大公因數及求不定方程 ax + by =GCD(a, b)的一個整數解。第一個程式較簡短,但程式需要在BASE模式執行,操作較不便(完結後需後按MODE 1返回正常計算模式),第二個程式較長但在COMP模式執行,容許輸入的數值亦較大。
第一個程式 (78 bytes)
程式需要在 BASE 模式下執行,因此在輸入程式前請先按 Mode Mode 3 進入BASE模式。
Mem clear: Dec: ?→A: ?→B: A→C: B→D: 1→X:
Lbl 0: Y→M: X - A ÷ B × Y→Y: M→X: B→M:
A - A ÷ B × B→B => M→A => Goto 0: M◢
X◢ M - CX: Ans ÷ D
第二個程式 (COMP模式,90 bytes)
?→A: ?→B: A→C: B→D: Pol( 1 , 0: Fix 0: Lbl 0:
Y→M: A÷B - . 5: Rnd: X - YAns→Y: M→X: B→M:
A÷B - . 5: Rnd: A - Ans B→B => M→A => Goto 0:
Norm 1: M◢ X◢ D-1(M - CX
註: 輸入的數值必須為正整數,否則答案錯誤。
例題: 找48及60的最大公因數 及滿足不定方程 48x + 60y = GCD(48, 60)。
按 Prog 1 再按 48 EXE 60 EXE (顯示最大公因數為12)
EXE (顯示 x為 -1) EXE (顯示 y為1)
註: 若果是第一個程式,計算完結後按 MODE 1終止及返回正常計算模式