取餘運算 SSL1422

2021-07-25 10:53:15 字數 597 閱讀 1934

題目:

輸入b,p,k的值,求b^p mod k 的值,其中b,p,k*k都是長整形。

這道題的難點是這幾個數都是longint,如果硬算一定會超時。但a*b mod k=(a mod k)*(b mod k) mod k.

我們把它轉二進位制,a[i]=1 則*b。

**如下:

var a:array[0..2501] of integer;

b,p,k,t,r,l,i:longint;

begin

read(b,p,k);

t:=p;

while t<>0 do

begin

inc(l);

a[l]:=t mod 2;

t:=t div 2;

end;

r:=1;

for i:=l downto 1 do

begin

t:=r*r mod k;

if a[i]=1 then r:=b mod k*t mod k else r:=t;

end;

write(b,'^',p,' mod ',k,'=',r);

end.//未經過允許,嚴禁copy標

取餘運算規則

今天遇到乙個在as3,js裡面顯示int64 問題。js,as只有number型別,最大能支援的整數是 2 53 及 9007199254740992 到9007199254740992 當數字超過限度時,只能直接顯示對應的字串,無法用number來轉化。網上找了乙個開源的庫,將int64分成2個3...

(分治)取餘運算

題目描述 輸入b,p,k的值,求b p mod k的值。其中b,p,k k為長整型數。輸入 輸入b,p,k的值。輸出 求b p mod k的值。樣例輸入 2 10 9 樣例輸出 2 10 mod 9 7 餘數公式 b的p次方可以拆著來算,遞推公式 p 0 1 p 2 0 f p f p 2 f p ...

1497 取餘運算

時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond 題解輸入b,p,k的值,程式設計計算bp mod k的值。其中的b,p,k k為長整型數 2 31範圍內 輸入描述 input description b p k 輸出描述 output description 輸出b ...