正整數冪餘數(I)
更新日期: 2012年1月4日
這個程式可以計算一個正整數的正整數冪的餘數 (Xa mod b,其中X,a及b為正整數),不過若果除數大於46341, 程式有可能無法計算出答案(出現Math ERROR),若要計算更多情況的餘數,請使用 正整數冪餘數(II) 程式。
程式需要在 BASE 模式下執行,因此在選擇新程式位置後,按 3 選用BASE模式。
程式 (60 bytes,使用記憶為A、B、C及M)
Dec: 1→C: ?→M: ?→A: ?→B:
While A: M ÷ BBM-:
A - A ÷ 2 × 2 => CM - CM ÷ BB→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
例題: 計算 1433 mod 24的值 (即 1433 ÷ 24的餘數)
按 Prog 1 再按 14 EXE 33 EXE 24 EXE (顯示餘數為8)
計算完結後按 MODE 1 返回正常計算模式。
返回 CASIO fx-50FH 及 fx-50F PLUS 程式集