形如2p
-1的素數稱為麥森數,這時p一定也是個素數。但反過來不一定,即如果p是個素數,2p
-1不一定也是素數。到2023年底,人們已找到了37個麥森數。最大的乙個是p=3021377,它有909526位。麥森數有許多重要應用,它與完全數密切相關。
任務:從檔案中輸入p(1000),計算2p
-1的位數和最後500位數字(用十進位制高精度數表示)
分析:題目給出了2
p-1,這樣很容易就想到了快速冪,即用分治的做法每次將p進行分治處理最後相乘,這題只是乙個要求高精度的快速冪,並沒有增加太多的難度。
constmaxn=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...