正整數冪餘數

這個程式可以計算一個正整數的正整數冪的餘數 (Xa mod b,其中X,a及b為正整數),不過若果除數大於46341, 程式有可能無法計算出答案(出現Math ERROR),若要計算更多情況的餘數,請使用 正整數冪餘數(II) 程式。

新版程式編寫日期: 2006年6月7日

程式需要在 BASE 模式下執行,因此在輸入程式前請先按 Mode Mode 3 進入BASE模式。

程式 (65 bytes,使用記憶為A、B、C及M)

Dec: 1→C: ?→M: ?→A: ?→B:

Lbl 0: M ÷ B × BM-:

A - A ÷ 2 × 2 => CM - CM ÷ B × B→C:

A ÷ 2→A => MM→M: A => Goto 0: C

 

註1: 程式沒有防錯誤功能,因此未執行程式前,若記憶A、B及C儲存的數值大於基數模式的接受範圍,執行程式及輸入數值時會出現Math ERROR,這時只要再按 SHIFT MODE 1清除記憶,再執行程式即可,若果不想這樣做,可在程式最前加入編碼 "Mem clear:",程式長度則多 2 bytes。

註2: 若果計算Xa mod b,程式的限制條件為 0≦X ≦ 2147483647,0≦a ≦ 2147483647 及 0≦b ≦46341,若果 b > 46341時,亦可以嘗試輸入計算,因為有可能可以計算出答案。

註3: 第一個程式當計算冪為1或0時,b值的限制變為 1≦b ≦ 2147483647

 

例題: 計算 1433 mod 24的值 (即 1433 ÷ 24的餘數)

按 Prog 1  14 EXE 33 EXE 24 EXE (顯示餘數為8)

計算完結後按 MODE 1 返回正常計算模式。

 

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

Free Web Hosting