正整數冪餘數(I)

更新日期: 2014年8月31日

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

程式需要在 BASE 模式下執行,因此在選擇新程式位置後,按 3 選用BASE模式。

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

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

While A: M ÷ BBM-:

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

A ÷ 2→A: MM→M: WhileEnd: C

 

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

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

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

註4: 如果是使用fx-50FH,上述程式中紅色的乘號 ×可以省略不輸入,程式長度可節省1 byte。

 

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

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

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

 

返回 CASIO fx-50FH、fx-3650P II、fx-50FH II及fx-50F PLUS 程式集

Free Web Hosting