codeves天梯 麥森數

2021-07-26 15:33:55 字數 1112 閱讀 2272

形如2p

-1的素數稱為麥森數,這時p一定也是個素數。但反過來不一定,即如果p是個素數,2p

-1不一定也是素數。到2023年底,人們已找到了37個麥森數。最大的乙個是p=3021377,它有909526位。麥森數有許多重要應用,它與完全數密切相關。

任務:從檔案中輸入p(1000),計算2p

-1的位數和最後500位數字(用十進位制高精度數表示)

分析:題目給出了2

p-1,這樣很容易就想到了快速冪,即用分治的做法每次將p進行分治處理最後相乘,這題只是乙個要求高精度的快速冪,並沒有增加太多的難度。

const

maxn=1000;

var a,b:array[1..maxn] of longint;

j,p,i,k:longint;

procedure try(n:longint);

var x,i,j:longint;

begin

if n=0 then

exit;

try(n div 2);

if n mod 2=1 then

x:=2

else

if n mod 2=0 then

x:=1;

for i:=1 to 500 do

for j:=1 to 500 do

a[i+j-1]:=a[i+j-1]+b[i]*b[j]*x;

for i:=1 to 500 do

begin

b[i]:=a[i] mod 10;

a[i+1]:=a[i+1]+a[i] div 10;

end;

fillchar(a,sizeof(a),0);

end;

begin

readln(k);

p:=trunc(k*(ln(2)/ln(10)))+1;

writeln(p);

b[1]:=1;

try(k);

b[1]:=b[1]-1;

for i:=500 downto 1 do

begin

inc(j);

write(b[i]);

end;

end.

codeves天梯 產生數

給出乙個整數 n n 10 30 和 k 個變換規則 k 15 規則 一位數可變換成另乙個一位數 規則的右部不能為零。例如 n 234。有規則 k 2 2 5 3 6 上面的整數 234 經過變換後可能產生出的整數為 包括原數 234534 264564 共 4 種不同的產生數 問題 給出乙個整數 ...

2017 4 16 麥森數 思考記錄

這個題作為普及組的題簡直喪心病狂,就然在03年的普及 小學 初中 組考察 對數 和 高精快速冪 2的n次方位數 n log10 2 下取整 1 gjksm易錯點 1 乘的時候進製和最後加的時候進製不一樣 小技巧 因為2的n次方個位沒有是0的,所以只個位 1即可 碼 include include i...

百練2706 麥森數

此題的關鍵是計算2 p,採用移位的方式不斷計算p的二進位制表示,進而通過乘以對應的2的次冪得到結果。此外,此題用1個陣列元素表示十進位制的4位數字,即採用萬進製 10000進製 提高高精度計算的速度。主要是實現高精度乘運算。此題也讓我發現的我的codeblocks 16.01編譯環境有問題orz。i...