孫子定理
程式可以計算孫子定理(中國餘數定理Chinese Remainder Theorem)的問題,程式會計算最小正值解及其通解。要注意這個定理的限制條件,就是任何兩個除數必須為互質關係,否則計算不成立。若果希望計算更一般情況下的聯立同餘式問題,請使用聯立同餘式(I)及聯立同餘式(II)程式進行計算。
程式 (59 bytes,使用記憶A, B, C及M)
程式需要在 BASE 模式下執行,因此在輸入程式前請先按 Mode Mode 3 進入BASE模式。
Dec: ?→M: ?→C: Lbl 0: ?→A: ?→B:
AM-: Lbl 1: M - M÷B×B => CM+ => Goto 1:
AM+: BC→C: Ans→B: M→A: Goto 0
例題1: 一正整數被3除餘2;被5除餘3;被7除餘2,求這個的最少值。
按 Prog 1 再按 2 EXE 3 EXE 3 EXE 5 EXE 2 EXE 7 EXE (顯示答案為23) EXE (顯示105)
所以通解 = 23 + 105n
計算完結後按 AC 終止程式
例題2: 計算以下聯立同餘式:
x ≡ 1 (mod 2)
x ≡ 2 (mod 3)
x ≡ 3 (mod 5)
x ≡ 2 (mod 7)
x ≡ 3 (mod 11)
按 Prog 1 再按 EXE 2 EXE 2 EXE 3 EXE 3 EXE 5 EXE 2 EXE 7 EXE
3 EXE 11 EXE (顯示答案為443) EXE (顯示2310)
所以通解 = 443 + 2310n
計算完結後按 AC 終止程式
注意: 輸入的任意兩個除數必須為互質,否則計算的解可能不是最小的解。
註: 若果計算大除數問題,時間可能會很長,這是定理本身的缺點,建議使用聯立同餘式(II)程式。
相關程式:
有關聯立同餘式的參考資料: