題目描述 形如2P-1的素?cái)?shù)稱為麥森數(shù),這時(shí)P一定也是個(gè)素?cái)?shù)。但反過(guò)來(lái)不一定,即如果P是個(gè)素?cái)?shù),2P-1不一定也是素?cái)?shù)。到1998年底,人們已找到了37個(gè)麥森數(shù)。最大的一個(gè)是P=3021377,它有909526位。麥森數(shù)有許多重要應(yīng)用,它與完全數(shù)密切相關(guān)。 任務(wù):從文件中輸入P(1000<=P<3100000),計(jì)算2P-1的位數(shù)和最后500位數(shù)字(用十進(jìn)制高精度數(shù)表示)
輸入輸出格式 輸入格式: 文件中只包含一個(gè)整數(shù)P(1000<=P<3100000) 輸出格式: 第一行:十進(jìn)制高精度數(shù)2^P-1的位數(shù)。 第2-11行:十進(jìn)制高精度數(shù)2^P-1的最后500位數(shù)字。(每行輸出50位,共輸出10行,不足500位時(shí)高位補(bǔ)0) 不必驗(yàn)證2^P-1與P是否為素?cái)?shù)。
輸入輸出樣例 輸入樣例#1: 1279 輸出樣例#1: 386 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000104079321946643990819252403273640855 38615262247266704805319112350403608059673360298012 23944173232418484242161395428100779138356624832346 49081399066056773207629241295093892203457731833496 61583550472959420547689811211693677147548478866962 50138443826029173234888531116082853841658502825560 46662248318909188018470682222031405210266984354887 32958028878050869736186900714720710555703168729087
說(shuō)明 這一題要用到分治,將高精乘分治,這過(guò)程要用多些循環(huán)。 我就是因?yàn)榉种闻貌缓茫牧撕芫貌艑懗鰜?lái)。
程序如下
var i,n:longint; a,b:array[1..1000] of longint;PRocedure main(m:longint);var i,j:longint;begin if m<=0 then exit; main(m div 2); for i:=1 to 500 do for j:=1 to 500 do b[i+j-1]:=b[i+j-1]+a[i]*a[j]; for i:=1 to 1000 do begin if (m mod 2)=1 then a[i]:=b[i]*2 else a[i]:=b[i]; b[i]:=0; end; for i:=1 to 500 do begin a[i+1]:=a[i+1]+a[i] div 10; a[i]:=a[i] mod 10; end;end;begin readln(n); a[1]:=1; writeln(trunc(n*ln(2)/ln(10))+1); main(n); a[1]:=a[1]-1; for i:=500 downto 1 do begin write(a[i]); if i mod 50=1 then writeln; end;end.新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注