【Qiitaで最も大きい素数を判定】高速メルセンヌ素数判定プログラム

#素数って面白い！

みなさん、今までに発見された最大の素数ってどのくらいの大きさだと思いますか？
なんと！

###**"2<sup>77232917</sup>-1"**

です。**2017年12月26日**に発見されました。

このように**2<sup>n</sup>-1**で表せる素数を**"メルセンヌ素数"**と言います。

**1992年以降**に見つけられた歴代の(当時の発見された)最大素数は全てがメルセンヌ素数です。
理由はメルセンヌ素数を判定する高速なアルゴリズムがあるからです。

今回は高速メルセンヌ素数判定アルゴリズムである
**"リュカ–レーマー・テスト"**を使用して実装していきます。

#リュカ–レーマー・テストとは

>**p** が奇素数のとき、メルセンヌ数 **m=2<sup>p</sup>-1** が素数となるための必要十分条件は、**S<sub>0</sub> = 4, S<sub>n</sub> = S<sub>n−1</sub><sup>2</sup> − 2 (n ≧ 1)** と定義したときに **S<sub>p−2</sub>** が **m** で割り切れることである。

```math
p=(奇素数)…関数に渡す値
```
 
```math
m=2^{p}-1……メルセンヌ数
```

[>> リュカ–レーマー・テストの証明](https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%A5%E3%82%AB%E2%80%93%E3%83%AC%E3%83%BC%E3%83%9E%E3%83%BC%E3%83%BB%E3%83%86%E3%82%B9%E3%83%88%E3%81%AE%E8%A8%BC%E6%98%8E)

リュカ–レーマー・テストは高速でメルセンヌ素数を判定することが出来ます。

#使用ライブラリ

###[Boost](https://www.boost.org/)
[>> 多倍長整数](https://boostjp.github.io/tips/multiprec-int.html)

この測定では膨大な桁数(少なくとも1万桁はある)の**"0以上の整数"**を扱うため、
**uint32_t**や**uint64_t**では桁数が足りません。
そのため、**Boost**の多倍長整数ライブラリである[**"Boost Multiprecision Library"**](https://www.boost.org/doc/libs/1_68_0/libs/multiprecision/doc/html/index.html)を使用します。

#実装コード

###lucasLehmerTestFast(高速版)
```cpp:lucasLehmerTestFast
bool lucasLehmerTestFast(const int_fast32_t p_) {
	mp::cpp_int m = 1;
	m <<= p_;
	--m;
	mp::cpp_int s = 4;
	mp::cpp_int sqrt;
	for (int_fast32_t i = 2; i < p_; ++i) {
		sqrt = s * s;
		s = (sqrt & m) + (sqrt >> p_);
		if (s >= m) s -= m;
		s -= 2;
	}
	if (s == 0) return true;
	return false;
}
```

###lucasLehmerTest(簡素版)
```cpp:lucasLehmerTest
bool lucasLehmerTest(const int_fast32_t p_) {
	mp::cpp_int m = 1;
	m <<= p_;
	--m;
	mp::cpp_int s = 4;
	for (int_fast32_t i = 2; i < p_; ++i)
		s = (s*s - 2) % m;
	if (s == 0) return true;
	return false;
}
```

**m(メルセンヌ数)**が素数か調べ、素数ならば**"true"**、素数でないならば**"false"**を返す。

#測定環境
```cpp
PC: "HP Spectre x360 Convertible 13-ac0XX"
CPU: Intel Corei7-7500U '@' 2.70GHz 2.90GHz
RAM: 16.0GB
ROM: SSD 512GB
IDE: VisualStudio Community 2017
Compiler: cl;  C/C++ Compiler 
Compiler File version: 19.15.26729.0
Compiler Product version: 14.15.26729.0
```

最適化は**"/O2"**を指定する

#測定結果：lucasLehmerTestFast(高速版)
|#|p[1]|t[ms]|
|:---|:---|:---|
|20|4423|241|
|21|9689|1942|
|22|9941|2121|
|23|11213|2973|
|24|19937|16232|
|25|21701|21013|
|26|23209|25298|
|27|44497|177123|
|28|86243|1398378|
|29|110503|2849994|
|30|132049|4969037|
|31|216091|20601900|

###計算量
```math
計算量：O(n^{3})
```

###近似式

```math
t≈3^{-9}×p^{2.9665}　(t≒3^{-9}×p^{2.9665})
```

```math
t≈3^{-9}×p^{3}　(t≒3^{-9}×p^{3})
```

##グラフ
![lltf.png](https://qiita-image-store.s3.amazonaws.com/0/213065/d1fc692c-7d62-ea61-60d8-0c0e133bdd5d.png)

#測定結果：lucasLehmerTest(簡素版)
|#|p[1]|t[ms]|
|:---|:---|:---|
|20|4423|664|
|21|9689|5775|
|22|9941|6301|
|23|11213|8951|
|24|19937|38686|
|25|21701|65347|
|26|23209|78262|
|27|44497|557699|
|28|86243|4146876|
|29|110503|8196264|
|30|132049|13757184|


###計算量
```math
計算量：O(n^{3})
```

###近似式

```math
t≈9^{-9}×p^{2.9657}　(t≒9^{-9}×p^{2.9657})
```

```math
t≈9^{-9}×p^{3}　(t≒9^{-9}×p^{3})
```

##グラフ
![llt.png](https://qiita-image-store.s3.amazonaws.com/0/213065/5f5a726b-8551-27e0-ec2e-585a818b2b2c.png)


高速版は簡素版よりも**3倍**ほど速いことがわかりました。

#測定に使った全ソース
```cpp:Source.cpp
#include <cstdint>
#include <iostream>
#include <boost/multiprecision/cpp_int.hpp>
#include <chrono>

namespace mp = boost::multiprecision;

bool lucasLehmerTest(const int_fast32_t p_) {
	mp::cpp_int m = 1;
	m <<= p_;
	--m;
	mp::cpp_int s = 4;
	for (int_fast32_t i = 2; i < p_; ++i)
		s = (s*s - 2) % m;
	if (s == 0) return true;
	return false;
}

bool lucasLehmerTestFast(const int_fast32_t p_) {
	mp::cpp_int m = 1;
	m <<= p_;
	--m;
	mp::cpp_int s = 4;
	mp::cpp_int sqrt;
	for (int_fast32_t i = 2; i < p_; ++i) {
		sqrt = s * s;
		s = (sqrt & m) + (sqrt >> p_);
		if (s >= m) s -= m;
		s -= 2;
	}
	if (s == 0) return true;
	return false;
}

int main() {

	std::chrono::system_clock::time_point  start, end;
	start = std::chrono::system_clock::now();

	if(lucasLehmerTest(44497)) std::cout<<"TRUE"<<std::endl;
	else std::cout << "FALSE" << std::endl;

	end = std::chrono::system_clock::now();
	std::cout << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << std::endl;

	return 0;
}
```

#今回測定した巨大素数の大きさ


```:メルセンヌ素数#28【2<sup>86243</sup>-1】
536927995502756321522338277992945300611020994042124005915678639443353462982103479896439555141314059601329696868637207994588201829793272648298355139552077502500922597675006568806576259537537682319598855314496743600281878930967212777337934230178148258662115597931785154398198787464683485718104780447556454938474290261453322031464806717051728004387326376315426274161049276919701791785162302398621789800222736567476576751086922042252437815857576950216810936581551290549836379143147616071707585958439732614803273694744410702078517433498695993129289109929108098912546091583458483945663710856228742769646421786042593955048775186530352081510278893380331577367000436562040054062021590840411186181330413959758811703583125532332966444256546495324358318924114113611938954990527616699010832260702093333560771629514785812406351425854817578378181247641432895384069007353009301410156167303507784506444595829666651556088101206021869205143408612030804784809199188247007267484480004463188547689057134165081635626963729877738774525747288176739403692417125168745116942663285027301808702614930797090732745446970140370457508109459814813547883216727381970474831210805511336197835126822276448269607696213660208306834614842876493143865338858432778447190334048379248043045868715014345086115732393085479559099442189190128703852065346343787925220371180624843922233302780121346367387468103323400076347188506571552827747093803520403943466763721458550107336155592436331036436133828607706547415861213048163637714599404676701242914570254596890839301461740263634948397326330456713211957065502711553902491152310086880194082183339273695201873690754015734001944336312012144997073315477679361971664229178987053172073536686513768710992623585843767413241216221204556242033980012771483270065493014924235074995321651948200630055767532506955633286704835637699240987992882919012547311202954654508534709597059494828566643653225986671034797336813206052537359272705404430589231899607358943422270724069320461112291428045839274232844628627665895284188603708277867418525677743342878082962691720031604050016860082177587425087826149146490740507378438842854123723647326829657828172692856882216025276660150664753192757003166781964692574758553198347124298804224482108172047157920858685156517095898349531026387319904805815876076778400668442424482740184825167003623109522426448145539027756151588913117656396633569200412173077578357271934849727160214821988278282616002676601928850339286920027929840294239287990449487740611847237272522895301539923017096105776647837788882935275543851719751338193361841468215111469615198200039562276019916117603967386445043381779988866697399348378689587613055776334831706231800182765322758074542702792122119522411888655613582981212657915777475329255261749315244650303478698188589624430165378071771491823991454494047503439689887296426782137492353122666436969215407232718596461931102960181224680440584245013439974887252079738317311620326677939530171469499293922064964806117804016036669916116941446344337128897338111536161036637023391971417078474920975591467312216422698961892607478650591403067584259156605986423290827981508396142690170939775581333585413643314304618507231398101580267793932182160014969787970394586699509968497380183558149127952744618559683842028766311071536735152446136671966171341157412636218981595068449801980979432426810793869908652496679107144268871635059759510309125253019134886345671721376280690349155366840425460128914747225069335909856819977492875766128914314006920790722084765226477289584933796013616338913540803350170929241165841379498915341948850672417039514954437150651945331235178407702840712814060356616024837669592405313008162391886360910550672770861240000956354134220393529492256629895535835672687457008560048213156885154519906931205974899372862515192996022849136051408422061563794906268688389756735858720654980884782118493140641309389974499988187385397253453473004147517447122481189104627948782702339487400872126371212862536633246084473298188525471319841867836534750084743338527449650694810938848987795059250781717823841797295826939215484384457265075128898551541197503302657123770305358947243972370817622314357766286824924664617312458079840237464049010300812676900067685437672407147649727255552381141508863726666024261860848931468334435263153197618540144763392128529437435017792053485785662386517067706266804997958432895640388076690189553246064332182763867770981959700177170830006563098702503652448605598122697817372883405707747867972959373288245893404470638003685137502146442606080328822261302212058836236071037251940856393861476743295204324258078547497081055824539954675729094379439942638396787960466727860467576737731060474597516122919753359624461832955515144490202929266667074135990488774935297133822706749690533265454154571252669459165486791637808926124267363628219605204427085629851380946059209530745420748839374684565870918656010770049000282684700474971060580937589660229660170596435479648473761774022009872546760793514101034841739262511469938369663141780190402694102273285019812090840550149938731149252423036188856753632811618788461398238516051918802537503534413532591180842360460936223433634717529024188971227438918359313736120119487767374070856148795081223189255526036885621263466227701630432888862213857567533044031699333514886156698794215721551367164221331365148296833446912340167792565467135738506197588641095778085680704224950017365935586652860867304590077169799315035232413675903120763478553819194700737089616707696637098412841612480856242006098208475815182403000564793019650512494959803470342043206634892098702318641226939634301319505515885828922190616032313783514914849809104096305657990874530749656510503286932924317335081647078601846232831686502334824320486617475988469214204319348054548154138150484685047918993977103404100737396775974932587446577421655609277893264446246291374956268517832319867477107500848037978458743318165837206273925328480473826924114951347202630024167605749927207753695042682035033385298594342916597234759945089523254791603358656320291583914646994925658408304427073851951520797323268679726814752841083954496763962563869112612456823615022841770483512813380411370975158675877234644056752342245067047222212243662746355130300122765231682254067026726793936663663850979653046056856799537651892093190586095848175774915375109771173568208316540795984581536437782023031494258033765177287552049909665859487066509218354077662097023112504320496731226976802279952702217798990308561607294398121994538554804825779546129893704561258394841816679007918193982407140181114185555871580912062798270238422352202348737749979193460762889122749496620883432710880473208594975042646898135353800414817301963978863599741710809613509540797515196491649364870849318683600336174382159445436165310807831923737522070980674445120455852045082525510622593532240786701540327353585406780212036652528586631575094638981200558291245965173576612577295663306376423411163518798632820708680271902230690006152336551466221813290239943997944790924971550179069658430244939125477734444296703411848198487266997749494796386640145874385813538585237594361104066964132234850244951756283250166854009460320679427646896072530767466081154944145857034751129244092617388266366115758774905917336936907561096833793983832960181012422776833022124063858978862059780686981743688021769661459824944375077682929458215292132798422530194850240029933260834697260375681150217537121490770691579049692728362004368911202163402122702363820193538932269636419669294444832743201910449836686355597935558721703247943883452699305258811193420082626494292491609396711942339697135626248214725359558265399474144140882082379960463997658703100689546044041204891337043606003542363122785786107830738332694950932282772784720401615888884787766053811300080603997247756424321157908617323866348403718505757111565532561071448093938089312978058846939719278574738846655983675878891068751369882687080545382810062289523374892964006127888280464700115293175062230505354664404859961929766081607180478852958539961580745378276382027413514590630602081920361564323713284823393985321251072472774138198145431080963058703994216602291835183161974062655355248409267070487729270833232042504269015671903744416507792899614614810028844936249850294738983465839522886481775685499990373087815628258319775668388385857952740388894217578360724970914180260950369458944551700388105426620089720448795057760107937954453403413893839838527503828883132228758871841351519183895034819163617352348396783962654311892366104119712687537433335240428253937954420413884739936454192414710088616622904152142005822322986267015195242897887833372925049770440221014494439950724068147835004693648902170337258473711865954345519961609814273903055967301542136502171275942334896856160255162770753504280120886428528175933086365931397506439759114109624181871873637956923573909149482591802232846742648575337872303640865007309896892192004508043559451403253780870228783888662054881208950495475264165672350552505634062782947246721472676767811452874256984543629273500885573488024931118971515522514863188929808753475255510050122053402097545121271742488239391311995109837468779525286132227343064600918087492223769552130938725755294704990481395907404086774621023877095584251712977696736332000683575365279075434442564090740673528111763174513551507522733817035933415644768790995679470081345696080348516518912171903110871634729647241912668497924836664753702481013354483149585257350670608527643724493589260419925760650697142982022401095386328986493695777980588058129679210056887260832204457960378276388811982165032658414536938283850740981052992081707628696642360929966223461188974195392208646115369326247607989588896886238397109805526017640485876789962756743402459417676910686264061097651750725468033425457318201982669158764669143968092597780150254907953224810579804935124452647424423741826786657015161358121710269075473375771304245839462292687990320359476323006783439313556640181786845523590728150788669329161713396189508602212959974741476724529472338141909836115043217305942254288818120629197173351110822987371758674877314073607643894446750543750327473539440419730983836873851550103185124835821163415654685334874212418379802282675337394785065640765095680817282770059685271551100653267653635005143628906218348029320856593581438876963234746861673405262531350489519539382593881022482022261862895464140846382940574526130411881106040609313634433751616531454136285762520524928242880557559113892643795078272121835317837374169047513925992407669518670033589946030447513223116445013528599858870717186122649324733658600707440605783491546921004595986163463914541464253695050558502359578484959226555566466058006077394118445921061266339710065500595074657477053029936611921026179643331694639676140253452779554044055879819649834284671174346660560543043998937916141070875321679954216552143139680915452438258024042264930112410595502906029924075314789955546780417316629828982640525844231081492059506967053387544874815382474867379462351443875357973337235679387585032029222862269797487337539676621968873820882117226649691354972965700504374837214951743156016623879280605530762423188962859035654438824426481445008472192290296204982798956485748317203799674301768552761000989590981747877513853411739008509564864870773009299345586638255720359243202234218998523832740918277253258951398432254699741066248348733054675706340259174543032234987059642588004590245917545420688552959306837045246782250335662409312424403810301559999734515590867997862666881347740204981327005586783058455110708462568188691024701467689143777018071632731466804530503837198463992950863817885774376842545390162682315991966622087178970769504266572553609676128211749468638543202007960413013603738689630293061791988859079833559241339492696005762457424477232981423411758285161437525570372453085683315316838104939482373212982314698785837983073609167680909013622511701365943451016509704695385428573899094504155435275147714454635814066758708440041893025505283364624798192779052833211921867083485531516112417852649436733182792263616061477685854775641284259838640756694231832991201903323546827162695022757650449975819505009334059527670058523145913946995807755204543867913734681853690137749375002618156504859720401776233519231450389114301221088941847655335789147870247130378360517299147089601984242765224153386512604335658215389519381516435851494987299550043797924385967320463983970108954960023134377449306726001378502246405463924316650334003651071367892544293987907539603710133266444702764205656233853937146708501464700025669815259494430961092938929733487398948082289822183585939459362117775928515226738058941530303554536046544780292243668626960154986248240104438372651031657724399660120409222648374654287211400070337904511413654720973036214386052045066652061397191555711253923676038125600385283555549746709692065108863689930928715732597718492045916313217838266276625473593206167197687654761815807344522761195859083267320605738271134818528741149763477290205364998915247057149220720940539224088947116347058799137135687777699022686940204925568581512971525984256125082533684519004450010614375000606888853523200446434097884696256429378738124243502057847233485899349100260654092942873487903924860165749695157450983530247646067745418990449213360795835302241591859519066425742200049056021030852824396511074578470683998638585494634392383094087592373421377665602699193782089988052487016374954997804798490516333179499945287329482140502548961552947377848567686162245665951452236735074081144845157655759828573315114955080028306878627487965753832494882177378150225293652794662248259862560162523627184377689531933206677999020632141502531319525486685265088153301392727802376270402810668904935157891658683494950460345603804071260111352660665018900294729463860691692549876675965261205516951448341233465747971088088781939537394008220633998015372715463376422069363845491999185566691338477444701280443186209914686704305524295386045993795194910434224696149447657206343838920046714250947321571581383677717395720345904432401907537579105268266127873115807093825756846794907948599458074315678483070639906364371556060976912719039944396724077556219100612309156834829222633771612593836217784546942200510963120187360108015593460714081762674030901538978608274422351034358973748007300228382879264664752608449970184658953655558697508171772945626183193356012639921890013299015513444722185893496353939216635598046786455810376137513608133932131149818983971840401231084264502976114241646025855795378141325676163836890850406679900187949435734300225947193817272228884385388924766632372623168175737316691955083830120385796218924297099657202630371443882375289232521730900810917555707326874978919526150466767288939903044492596222986151619092306859537631337760768209083056821297598978478732049876095895412487148825305790040502191296125159417578858287812868030870693061318261319132339112116547400093168095345372323974453348115480365511407041339101198633641379646767585519027161290092511065722025621295752103026080372312214605033265253372556534478094992050298871012630943802330804966732974630060052143970280339520520333071218938659238228670394522318375660649734320327206180071692065909501567358389399882143657469138169335151654444572533809003424363942955533932653546734060551019142562714522614438621163615506812405803992876301619955597241535375241262189933070691918098235697699274186075515213614541292469399510729048122783037990256804887852463341140862670144419761716829530277400948628451774560861741339899036166997989498455951278936097800594766336359030400573329909886295107590837726737152878837051738822853901280988315345224664277743267710469523203091175393290426625684107632313491344415351025665273836121548365940376868870852141716728084052330962738299305500142744838613458547312663742706715222649040325792744916863803519697792008400204611746791277438327937598161662648227011592347699609945117813106798889429224705888955757162126713920292833092310481607042712013198968170549307020643239013794355616807503678185648923510734817188255570319007902632208103455036101282334134624858650262720842931591681403540833080503910953943421198917373033568722275821959527144883440918806878441792202329283024476443325907251874070085526080004691791125487213247404338015296039191672172235806143868209590110058813342295652069273646355516703299210563604477216184156710312698375346359708085719768443170119735154840234035425255633566011078018001315856917837864737911855663259044045126256406468733735402756866182242412133201454471915552770924906566967021360184748363230538903222377094076549963464157307039622249550416762586779896300720072937963707112454150162409611169247894061359898809106532768017181681206698199703710041196698507158787749101595425848708612388585529517120688904190517611283361579404961488449191041633774059756962636036687268466581677465338091654434013015705096815849072367913208054776985553950424642195956594500460982751551667283016206207122790750605089384360726903315602079004589021037084342215447947357489528372227129326319370630329967207985355231172636826777007572212122788563084491828806120271525518449064225565406202337225218101959725669328036967782252532361619502739719022221493893751958387826994633652085810662527155714631590755287159556994756846540440881294477717973412375531861728543766089207148026270007304147533743653839906507116884025028095184520839746282208583977575877228836830814606120561501863064376952498428327367175924570398676997511931737753072002176280236857020049109464835505146244812885783327191200963393712069183045384482848674600505010507443060263486323876710021369619546864188917876181701475713801948106499633401242355066390339370481705528223485842034856154731523199228705065198425615162852450947122462857987225019740037925209459731395708076139784094404791399111419825930845036475088219129449968047015228424904558321883718130456931935282289780264745114121401295546737229653531094854005348469015076061730478108552459346727213536558174766883778699636106367894560914436387384490811833929234196319199661691994917708957234702646771008104414640427517594612496669815445997467500285085160610003282337996078882003650039869022876342795620255732755392200806867477070685908454454171229715868645758009538642836300621578007696004449836306639742091298047439325917974071975072520419180240255163445810805046549666431320616877193830123637001750067629550016940013355276899488187355544615714546184188768556488775313271363942648139325343608499286880179969475154546766432220724421736081567535855327338763569490479007960429857187337831732579285701835620507772989760480861248208950480992427198241105302169615928722610906000661071633200183929808058105854177371575838304552110617592284628663587773138149249703789571251175981026044664309977655667722383481124658542729081614616688618330214837301925867202114187521694304160227302794822192195509315146483506970299673690191456177512614395543154409346924295898078464430952347588158569015582028619868451904265302445611901103399229107713996617039737333253253149965069957207489603151352736839612926761281836619249093706411122552275264648196233128329460521740300905067545239066164425855141291214990866273141493679234273215177550662006398190036886671561472362053218037417837958371496059542693691091680379927542890572955909994299028102406639629824294497887672289521051374065737223152785009475405761064827883829362597521816061331459950860164628437688522924815756088843752304870968899690232213617921232955413361828211295941839343306231593892528699386654508310874743605284018812353323798879746268876941717818244791875754461707934459437679334751682834948999714541478575906766511365872440873108480929777995009837725679208061203082340255207211097030662344275343322584609334272069095114396855733346678686593300477668775879859380013529496181774801310547795053999875984726387184358987505981389723985309182875551979604406463869120722026465515477512178466912070131290857638836893512335536233207844671601666369016965261688863014990114653149820913807248741106734455694344471383862412098840874145772926466926136314929800839375041107633110655906477733066727725479948754882193959904922609066223568036931375124278667414116094213406134654146976827223625193104323128644177594034117331072568470589451404386759646007208934553292499481182881682141594676822161757025507425377598628855312938601619046170689066760559336737084949465233900506711950838100689724529891469921355104002986888183964908611228309698424329420145615664907714593656852595647325653895153614101901090281869675643533648000512077462158579973229101053539132960761355618398319032570070827931243184577791571649639459959160022856407037261064618847762821967947672555360101115569644323228105644026657198942379476479635579138025489633380342983200579241671226325885517877036280383205013991089785358902739387620840284550640523107909290994950404571273986383785177550598506833765093101550671264127440225654399018978282178298599891970583808479200761251851989665550342674620136786248888727387145589551905082360047156248295208727236916556331380876564263057625454992917739590704929943665847595990038081500167276664553459626990392092892802837341206131963855039128025399836345212228312682085425265794674487890760489766917131577656481941849108206404870718470295474735604572694053323688369229039978594083872614605573191735537427307841068337478950766468331152841302451946352260428684078092620032703813526498192818939162831865012675532413259723927236041656168646739088072443099387803910329443837463158386533716975624769669993816970244280318223735862776038227071403678746342377515220957948427527005547430526838627532806692539157857925224013861396060723172749214080631722055195915617688395493574271696543133045365728338702285733981965478436685359861850521795318285951495415316006973047532133311877311374811634165338943121610652915313578627951512377329411256255274417342453715474126743760719106653961150650104920888984497104464263241085956773793178310210524065152139543346877650349900364996691164972656066193040862146861587425095642646008213300241029759512169346594943171235750531551778229462339500205980782271166559095612316339810098909276458637147757136213921445741597156879297455591206238555866896275509132099631731216016562537973867133150051644337636293355240210517356935814112542759016542383232799033356743407179669499636299911974554410978940175269058273554386625595529873730466350868760587962553940047316027390589177935319749211573176405820595955489323612736514557235074222234579427479370249713275250481825667726102147010774278037582540753044318642588354240319055720351534761501942388720524857743456716847419604006756750815412808256939183095036656276371228968438242608330219450889755964246622699041544694826501068986545616775662145569477140188205972952335499273902889015747789037200476084376503031189317833302947220413880308675900630160369508560120500644004835372703937857409484529851937149073114312746480567135954795161494550273692246599563671226388020024509771593813496665035996997005162744911501730480909132143158258082719828929865046669324356337436943493278102243432572641259010522320354199400307913163806047256134793242265176590259710214896412294136219554059557562374174417285164478635213601473176096918809227950011384883364687966265063873287205014240217282489180706227536054689304540282095198361276129839558692848530268021137321198905675807134788658249469722176329087100213305229639640242365136109431849269467767902207572984227020407861607672816356327116574815569464054119903531385138263973612861798055060882672984845788528852270805740575921770561330927685330218365413832450731859785587628614574253751872981128316248724867808934950634219693982320702855374171393832783165274048757463269596446299808317888207774656053727947600805632079941283957977356721849004313775375372514519523387846822647085906391770204988847573752492322182381534047418635801540897271412084137974058876452392245003340959845555463427807868885215488200829744467944285722311829344297096883618092561428343473482267518387484413863882674031631955857193705782770341863843425985153460046417012047072998207958341501175019755026560260700533956058110989541295665886109082648953721784399340251302993015006161438350201164753208779772497932883864984963576768577859300895423633398267733640182627769968216897320002820642612624272182558614569463492032272569986588073672339268258629777254755703310159537525011693508907569629017682439893121935619647108661425326638901206083706920818902152090366688203667856057653121857586950693482446081842785556820413928858977875759765427402211019791607233836882305971625988699321245505976922793964929218801647450518952695582090321366841516732875028556559031183039246587043404940895014214438562378325610860426655502821476582146402387531918692154534004655271642809479197256284037850612310175653456546797196925798595052317491418881156271347365115980800764710573575970438705636905413551687997414803434273298844243409389430961012384964051341487022870981975045466069995343620150242083577993354193076181385153503347300336394997212468099438476327127562830250828621628178095306848328118865875639629445260237587717741256910981628616302222222581412271916134224761243699791955941371665377907671532859580576089033801815253338229934726089001472690455148405034904325659691911408853568654564997648968802306303382794038815871041753045693470590480037907203107176859437081968558542414164289265017377828825667737349256950983018153362953062040840874372680061814451000645325515702552526798625744625725371095034402407316625368563705126698923020599704361678012485533014795074980398665769639158254384226963913184160458565801205133188386184482843894187108777787426101225387879703690602567473816512335624372076379566082030679124392066202357586501478951661775358663857956303683405537847778137064029703926036747958458742089732052549318161396475554914563870886654597859221632902346903349715483184681178322285726314248667783155646060284645000051714558917199240164881090266136902573707212409831769690354034882497230519475241696380437678766772927785172291590256573518625192289399588469376105905697705415089600178032945914353201376915456322320250960867906195719699857021709433438207
```

```:メルセンヌ素数#29【2<sup>110503</sup>-1】
5219283133417550597608921138394131714748003987111696388844721857021695621345566328693730284546120701185550350229748838662252951341253421746795073087191036889245882078365188808677470720357783212747307528673196680088458323693474572645646430349088271293578783855910006177172218945638975265804307407923864296665887203966818881644127188326278536823185302433682452220866505473927329966261635224705976307336848031449051946470250326355850564065070219415063390427891641945141848406032059956642759451697871131937435974734468812612404366795155477504403442852091868360651937341101803746125038414968100853875769649772568976533115626733686633581147178167854537374386645054536421581487787680673873260827329457946477205293076461503204195229898682736527831015184366661152864587615185846767471910458921833277044360716991019765678686642856418011096226793070226165298245200286805907696043158401359233205933894872270757840780311842993502030651236226420390626397948002732496153425437136287482563891064276318845679420730548518354628798521087698057831570193388325181647160191379350631674091897212262818278445060746814976957862342535407548922347134501697060190457417366250455037928704152728620313194049459090938561074166466321977154209854449604435530303555162486890044423150383891465784220859099339814855122982824292907630042351718406860216298441018976432899012907690738344741325809832514370637919675751564228983581067713001959082281741038000510382863445395122241581297039798297231129157645252235222643331292666424360475348246102972693436258291783024959062081981838812572142511803956525449888847112458483851365748838790507346393979150203170197392307844865039294565185258407625913055060713900922073408886771350586379576558646737634415678011238370510372009244595665266604273647744438936460505842615012921299723039609880229752363633215766432725435987253902189301146196983131735602940755230848663445117927665658368356420346865950111317140432850742151588086112978702994240762421583385188191350001231200565700667791389021354205858177467953946405058508219437914852128789874720946029689233060816869125386142828340576189232460988484979947357301166335302699325444851058733209447959819326191635260772935604990851134296788845298869594134244897534525730181304428393857426219940590672281276723518776582169544067334705480920742604001168622762198273693428380553897726338361872954339053214349828778842361781853106705246246112826667187778644452294726844594574918377285572198422309281050239527692661557089591842761278181057933278000401648351356081767219918593264919576995069142249170223836224702255068465253482078539098187443071918215944764927958379845359365240314888899686669959635761817082650578399550074453202478150863419553174171457756089567615842152519360157327308360698725072256365040969792621539584036465460483849963364877060077099462804508783747443748521994786797187208616764402042119167359653346884051067448362794008940082341100994444181614418213550484684610370257475208798374548203571375481853250719794707737297289106817344273543178234366780318872649407377187072730875789746785084870361011603837828596063380436934427559741399079630414229895319266149914612519280272823995869813896972841782561116929003166739744612062920048993540969166539567069660783098613110181470263393931915610974133757611745434282513504673223466819904565802892335444902334736162918420861856512137424964551732430578193645849344558708572144258113789862433670385490704828913699643122856631354937003427216841447763823770059461987956351233769350148968100975738387546952316818146789228505502633995283191008860757224878910306387822619841228487510959391915230081278738478964587060771579566927543809518001023256799064843500598047448092769672112496204842133809466280596134763991644871105523092033002144386358014252471014304933512315525855464929326002127213531185766066959495012425333202747713991260204270554711267603519448421573364790583464599414079092630562559049529970854068245838058972902782716657303398011079570340993681978602146016260731415392796070099302915857446184284492338184900216275081239194286014920899856256657301752101626142771298248388740363577822427523530496698324976089830267271770433302612928863492471906219529755857499316371756474544420059869354061575644223098201545184395439200495673217450313417117617847652221602698562899339244049925561342019071478094656156692298970839460894861033151782740390479827962701287562750064371964027625677232269761059437891312572243255115277459236700764735484999611933639503357777150911412524162248723431001175341571889620281950611889360490007342476142047713725454664181989231971490749598648207558524714435823528801963270106690871228191029010653103641813849875532556927413266316430858480756663121051354045742088249205913851178254507537826478453318305024009219910295626907315048440247469362688952564187604507596955998539879540191650667035389903303539491945912991638480371092660980900779331006985407097736196322796802626314674103633849922510328783478267810901914263565926331779841234341557171622225997181620978940634079517600724299703807480826218272492787987996449775919730062045133756639675098203801102844045509184301293110435898724583832877280053291902793566611159694010696228754063771664996095787812423235160254094397254125391108561499107218473169425539288882278513046714043407319219068949468172288158436366324718101955588003305237184455698919819573905719538347163800330464965350384709792997192244756941845904840558998378244156887880300448205407800127556895875369630084390234520371765003246158785015315017571785917762532744084067842701965827402808244353884339008814967552009585707585930199840219015697516779314043811604512416068649879615394713114751547609261771572859645987657096712479535823843294183064535902637275082610415092299017574941271253130505203786422599954246588012241306721923065806890956746479029456426379831947739549627656030524765928950331915786548762562328083171649815759067667516704588106333557929886109775405451970851524312228546878654197960754013026372859274195306213445266974071935007298641663616314033269884667955620111309575343217861185691394535706369722324626811632890909545866042361012706332668814574002886089482457047069792424592306019142598077930541370804870536746764718703756101315103402498751465888822984172394408820511781517872764205955480840803205483107196994531153451950583461658019927392514304980398554764126899265779300584663624849476060120748057077601917768935135399413692676935044564082114422782031238459636513796777783240689793652195084844112602537745301670926262492546259891100605861657849178159354817407487478931490801670084160896230614396947358808585239738180232916108965188695590452014440883246282331273025204280241388275626868589146434017242042021840309157931211813867467410616665884021235841658135804262812971569692978840911041081726688997548959744100838476816595900886448055145128729248758017622720446939441868806149463547490282358163060869321029448427336843444204243515131163997504195558101171711507769963992597654450780344736522510720458589263076972478692329843045248108600587281975177627285940306164121502635012077569268382618992424728960577293015052952673828205703560705531570968207693918162579001277852045222671248467264497211694624169858653954833760474356592813229626505890505354134635151787948216365327901508819411785142152833432627728196612826280426493418494354332715759068513275267431843575112419627392320363061901254840884481021434867813860576688519853931319751135758131820799087677142019115811990730366088825026705967895514998294919077502618682136729305438490581592513614486145775140327508036090571478743601469925100309139079297515952651542458232938433515373375950850550901991034330759166084076529135116217558488006169081262614724001416460184550734010510439401941574568085146192143492506415272776443357698527499205920188662762249868506706790255417996527667702229820002517515132500604313453961565148329696168408722070991415891197822983055527178331435752092793749578216888157239353475522775912927356042862965707543262449655486923996924705591337073224376318210126946003029950798609319746198936150871899457221884322874567454461496564928537222435306561085047593752078023600242671756689325995928149581875252520763579817026930285253426477336763345530568689085250180550154101605421383187700964376878757622750533373212825816132162211868283524579681634439593450986867763869643415251323936438759726268396342400872357875606140671113018462893096298958797589424541173503692724334748353008327094914861878511664919938546847178441862054576369254241418859359997673824895122765329123670077022738684049477623013354061028433153254934063535551741212284366260945270521912247754058217884488363961097022478341654879669119039422474711453560713897625651902545874268502591066142164065201145925431736206354259681236123782295953421146036233320706202542802046619108202210601905731146091245445382171357426106435391257241247454462347439843026848957008024971000728739612764701650820745557077521019023663558599300030098767733318296212267791898625397335732188623883018403444800160899513961282647304597132863167285590498796533476782410947610427209426752715165869523201813729432914018824665609813028365558164278232504560433356526239382675492262016251904662875264317012930368279881629876130193702623522145536349509128321152604697440779119762879148757698034629396659742679932515174448457818126556092989541554952290365028495230047528076275510817038546562525047710332555203233199920185022949987410470356466217859084515621715814744078133458401690440973632241126599062439131812445571831195750648033599093956943441851996548154573576590514545685636340512675499356488849184088303003552394888593264605119630946263677978036135351207949364007605467423376526619612619708816827290437234533145243193982617179538944195289996255922150763223450417133426698647254499958391012721079500439885784286798208974008103527525798997123332642177873443192384052822584344480513642088070178308582176337990887892534104789618366717917812438060665661167665404965586160176289888772605859421114049525300201228676436639481076283265730005578214880015011360655245823382454752145003922761176793176860917776210439643878167980131866355801604038300074595892903069711260374423051281344007558766331046287488860890165799881131335225761972320295123203858013644354191760983660411514591556087245015247095059134575699390131848115923393546207714885164019016901853980277478069412283251180591353065417541684186732481744926646830063532770223682901032098939874367730081608222995311565991349593473838913982760300921230171795098158732723221531830432950856290007606569936454419490342239200539463842248283452814424560739976630988284771270307905269366578858096343588951243106238857167947528386703433424496340998917553854024438991607375269389374913330083682670659443407860772695251623499496681365629776020551122942020147967701233170971164565472853581741935610647156261442384055202447461052756324428747528360646913527525663305805317605697845478025727444978208876304016703016714358509239681996268496084710105913501244180545330136150204618138276030314331596601730799483529675130449879705835640253303475624331762638560430115055607878412858576302603986169310524352365499033295536709243931053749941781216666676849722636559670195363085481243708523193553203468045286868687572241116457429815818493904095679641472113827308948644547480831048764793974598219440703597760450979730526784548348528478981126440100335589564511210080718338720668292455434033777745737329876314888817706542072502546494305848810503776519846387216503354243469167270879296292107216458214318938620321916242246419321692446400984188491107920927885540506689869333319550124121531961967637785140171734782180729355318808490350500625033283733486196374702998782686801906999697823374757576051529793966335783838480147339455936666307689959754516238886484633922071530920738265836010765063579426399950855264177745045360357798058459894165283550388823443191581207989394041699662793780547315971739049404334692755294151636293340145938553396184505733191406711054032381118628275046047882209953569468206198402245769816997661783644787630668623255824944069180939286643322416802183432233004319271910928887103445885987503538865217204903661862802860195870304417691385203611714502909568732628386772288321101737981952503908657510268626233956746929677891343398693108833172456699933150924423772966255944302389807107679885786647357304745578601085057960865716938291990517461346949345588040786702324417668600590221394530822148873687230167938390325669700283394317526993044736683267934127199505163235323859199411955121008904060213692888039563072698548205248121582170609366676650613275568505188142341951040544825408567652588518558585906517079389070196584208638012431962769864845935249042575015105851544443130170041766567612163646516289495143859625803124769550214130927323677706000126547367711187358932033441900785783804522154484942994157381726864957796374317989124569595601718921105964163751627872221731073259057071671114748468089122507573108262957947467318792776413329324126543145101325421150794742401365275910113372357193932014729097560576009796970589125132018505242435049021999190501788022198184026497465786915101220787507788225473024214784688957422903036584053396565930862638025590443803676419182052755763247523593787911111805458919102073103089396698803580832272305421557256437585106474206596838008830418989029710524037994857577266645231673510146636159675360017287419793516512154770352296551724089267870934698157466371337582272478646002708199948393973530096606317370926740805647404584433338728747758787449799483214725657610666333689585296497210167818951260851947688849515831641598466707355270906108846342509978285495939770115709354671057029584411551950522223690988001144258550273342538920445248869080701571113838148084007434013046317661547673470938239992648254419143712021487373234721473431991119240737093415252683167731028644293446183013582418288512964757209870743934472061672081647165005618387786132070667312550890485505403716544778872192898136970375010274357427081353375089376782143678081963907852958319626245972043515519964702779613588349712822541044839786471769356045279301841071830155320088747687777679036500221131503499979504575800139618953991070532853066560299227796553133876492788471387931546473614682116573648894401928950676697741655042663160432049093844423771487564784140078212230826253199064718726442268863914621131705728934425922395324963886584520126767794172859617162078663860451891957154839984407506434112876487007685201545638383474365134030372400663301518149134174638959201138045043800404284330813643848642446512698685902193797912679197289529539539521449810714442565198278216365455011915421576258652895730215900302374917580018053651570992106524489590657900587570625744379186519421488520877903999425363706741239465560275250037105968752819708824658441551336227303560387773930367130490497737191158528370720480058629520189288387537450696844122530346385463324853957538538851116972967092999704879118387132854330328107827693937467287347538274594902731750244394464490197158501231457149736399183870541715899012829219207981459949070532694275286603818617396937996420009899103467474958498036633243200853183286600971353965870623674945011038720236579523799590804766006303206878480096490186884063849257660694003423814016730899173658625753071641084366116314733298531659941798174164443634526932808426209736448529423480715074538236051281356370205557298537804473520654085821963484446213447093493478105436390068371505767925883351873517238268285535258153641140173662913456752338996439694947459295909147107537308689499566226198769034114271441514924367202736600421291624626185612691833660991367335133933654955867668171632815842871816078544099135459253981792139261130052057679273911020068865592888176034404772670409620548469870812571242224766785903597368375801740705093657243994581280287940391862903474036903047520272297974628936388853144078848752869911250165499502068388850141263761703550768959086097423353432540696692709809622981960562366641400485907192259570580297159789983018699762191288261917134227355803146407182277730848943505098284684041046525667958811928772384811052101237341231033701944375149189914793181092191086396866352334748449769231395635567602908214466139766841051481060326459152770437486389005272441707123755307243210430531732049068456449825816806929054541919639401470321710848514620892330591633550185766036860943234581259615801049107411151644671751101708383202164583986339558524487030803831599546653763421487059629455443224227763350548492160495112475253019491484247273334953981051246738563060559894847220100004561228283032663663490607024016762521772414059741405138019007589458785491351732514198581173710128958313941112314580263851166875856301200483439518868872555780218919671127410917048448654558133796680189124421049177485066749163860074544198930562352634858744568269433666369070064786744129288067330503196284249790618086683008925426583395932006123930513722216691405542976461576026663694155384806250863078586676024022532674700237232099790022638523214039980502078812635646671328978030000908199777004485283855464685557392854298946097263278796029029961820226986513291912643982774325100751655317537416095015757565889337111322486974074849380906325640899329823738483073861429628431453876727125004662470132712133930125059635927596905880616217949752457825440734336306740027529307085515497399778432231317434153722079091833009196835600565804017627356689466438397325852365287526877981067745783317426861460181565818435176585563553263968772882565448961613374975233510610270510643855817864951332096384347681579804133304412738579769371697995736436783801260965236316121819658236938848772963092662966740383338170368504160178690538808181150207965829454043970734605092665203282180306998737108740832392018885366175510813263906162171005118202219769546450218933629837449315986873995014879164622028047281551856288025869366226377962913079159223152980479974082188868134816820741028507402946930810315225846318849761982037990066600742078985463760789106179824322081072404870576639155178597387895741078337970325011843427140903118912861728232683648500345589286390175032466675195084882765161130942389193657015081427997289345223523148674977428470938294436264427377992263874282907014732045997521204039060022970634867936562050371836147130070902356551551316667000212465890035317022959564724972037608536949462213866438499643572609436856201172162249098182377970815406162324050253705846134150989653354393374265505371966391919009566402477187481459454261412338219115016224152566657471830602849081762507889894286772740319563048102338426499339934988291650899581977816703568304505456412329805350562463820858908729713680280814714554636119382888658716766350039873582718858924117791327355333060161513935413057383024626266388104235168826332573188570849559945315731231480139024165079490103997398738515187430543249422093761887076959636534766976657766190468183508532583690193944749450489143056996156898388636551440241518490912419187703156009441384697748060593244163827938361962226484334594535539173840754798551270516667050496731065869507321920919270878338465956919689177567361370314710280030473826043672826789413194236074292601814069920257625928283832406785075494703228337816044689608816258562393204100895940889180970760107109380326213421017610476805064077669496648922573499327690724180178120388273960987627968879558583043095376705550199191021286378462589686405293702483227357466451253247376011216255490247352656747435617419406346634947543340002158660581492596821313105549952810516800577681304284116785753044174476706869021994353640048589565581924137759347425774607724917148319421422687770421201675030116537294507236323292313150944942750893948610209118785264533823896568610555711575854192944536266330714967100611360624738995194581459406070820894872744466524729935157031492175464468567870881582761271097372624220434628657735130065084550092388586761683200773265886960960452490687027022830049586277869226263630175237158843534292291003883133850812783183100571495765339152432314167957221029138565573829899302195290825772526183743964173790228611192501654082144891830346172659991051381408141257105960177336986084842925975783181859299822502665565744896999350400858755053409643775663357955071862663255836966922465364032900847592329183798408398517577465125941098264076255091992180073626578203277086816138537028294667401704649912771028983643381623990666129099900254845625598466469369682697049039433896514622229694939511660434043154654341126565779759367902111555908911005947707963951247660462106373039251507912255600650920348835192689776594379488819932909742973567973593682776666511083338402742981058837811878150559799568134485601106754399153655680390181079011143615717606599353069113138221769583848263405849978711261082149814528219311655215231477674291680352723643693723563267709046427605981346289180013778059340540079409045640365842128981588669726980929890449590897770770717662756557321818635408920540448197962358293946973145169436334222382843495671076759497044546060643800127428205900283277440700839560328910569409904424449283012770825521878522632024245620547645717447254379107155964792664126225184844373849325631505412119004097493480791410583383081107888281419099235779383229680188384017779292617921370922372983282503298791017021921784715440301789087148507824536335557675207298935023348409468791607206887572163473596233634095514588426193776677103790030103697798488340857651485831498976810338247798891274171430792711417218119018685594870181189724154993802014008520621181498724733019671519274815607394471144930910973953871874677234320837673786173747996926108182160592819930285028243565270434019143599764939825434835631361977378834574498476196067276279197970185482513387075992762031284719426518736333645560539947459083154992047508021177432253410186114503046573992891136350397906727213151063042796603505508078503029848207956861976168707326309643927627932082478629958930389043300695953852245762426688198844500968552103443945388825434581952086254624804849323094655174896563225863492656231228848145999054507558064876783575233406881642671081875445728176973719623510405841272435458186174137551447332986198005631148179254729286590093654809867706726135218368269085682415849010927074017886271791094281967768009321122158979102288222564043650174535214025103753469650857266570607612767932187496888032409095242429364768509011462430863422253155131799344313616840024345057582809274140558256227759257581371536142332899517951052968071988191897884803413540626817984476492395370547098850219684882276641367409472540871594231816700092552991708816738672526158318251399000404719419039203630576102697834973314012448002803604296275826739467016237569391742822931453251705873513636865215811264417093048041562413771425101516307271586711402176333163244449446241366835142172999167198149195445076785771746105830099899755240514179074130483590748328925726169836229219135059115543674794729764757528954732301547753091360598364488144583854075666742799233901477793810708349408436623037613251688464857600837871310874599660539329826527399852230164943162201693782771653469751274562245118306884929923560792884211974942868001005426031939457512370244462812148016201342630473074456267159549293867053767659038056779949088426976254034728077254088135636860477186686146460626899902745613278153691400038339669537740544826562443805626535786384898572485701425917432386986347545005288812481364181536338248364278398726496016692123724237943548545828896728213046892088065007581346307309209881633136251506534455849280057342437035243462095729482589560053307406095527385109856353586250293946996179453801457868107800325660554532815889874967288747905456479104063078963446408392211991919068709916650366427193521435598108874243805361630829273485118140255826064152007353462362585456695582483253258528935582247912293014030259075488692057966145622502275707411579967571940743724826280576348051831482225559303226913313273222907950041784172300547498749060305878597291391606248972363355290948450836366255126157308403661054075454235785998143321284840030323563674035582184135793969720132762184242168341237392013032814153508891929231249031814578555987148412261004467680021274080915281269245527358835933371407227532308886439039983468705220620776921285207515612726428375426237913651622946234427409596825985581043754174115704264121004641271992679265413033893641001624386885626557671648182297944501373983864934057502341197478541199763789436638185843621570691204086149963373213056836154420869373597108314030426861451170412906079361626709359071741472975878756611036628962564131510773383998510774234687088992540536801810312009857409980694442074071368789046025521655489144964103881538946439359229988944312506134360805262745863808061869660883874870254525608385737401649750056276841658403694887805329366370830594546417565156055684539618472323821222897413937507741026226089596583549804469233405511618762392692059158528940278631113978465479265717747579601226777431147475637428062537631976626723681685522162724527759014616906930247421641947237717892852919071511473334229604683532898578628709926886572101867418845888405030606641737680827364610079316942421258233285125320063076534522312971471190655386105932096367520442927148501744391319945868134556799101897247505920799352053517687463088862122452649397230334908938410526023688356915746631269692332001052996469934456965145092274742595090221896958122113128807070503152302237929958117399858228931530449344428061096653254595757996596012868178203613096503557726524712340939850503491212011915661283110007772667503178059477499819303182705335332834624459158622179543934574194844832941235410788824896970294171227029654839529716920953122839133725722885792046979734701368899651860091368672457694068705142153704665956590116443066776198119837317198038690756679423778649983031717953241414565639804415349200132200388959885387334859365611381421757473594124140300845948165657326321402045526457877175261783902945741916463141522561420203700933323680476307717876485388538676825388861848354773776158304137581932840046496698754994538681513128446619105733675593860631122275044806365964738480695283198893795471985032076312138217279280685956908551225895651949636997717323872407213019526947214106014685651896720810620041619457350403927319816530507040458205468686881230845683976768482406242102360072859068637840237080897680414672874457279137290351731285361826730747132309723457291984363054662169783469965067810677272716989229549869544997643420048951962117330583406227256546424931564492817317988500941141515774213641259043678844901192292384108515150131680045281832808388783271580422344334093295411984846535779091842904018189972599953261108377814593515723506074528068379258018331670636324449650928795940284933846400055459917356112116335784979086949945956369581741604812238482252014218364035269595199869272652197509591599816699129577988601552450772600803111730257689434740396645678128683234080110444791146574502596759538726267567009665497064869837428440984372682405795705294960282556025175630442242188965858646033509764922752662123652688977422399818270845289060360558386646605078985503263150878101365939532848349218710579326324704979570885404956464093057902572550952611083546856831967686482879514544641366849189646088116922576717467199925666186734857012684711404619122222064933395604978601744611743951113455953556328610156977263958739929187328674786548136811449687282949959464723918992516804733474011918958194431485725908061897509325645763342150537353562047224435251469859024539544189504439300849183351131681465155500713348848128795541773814600838142333161455411590379382669821711558360682069527214815090496728243251582786643214565620855793063391148893746148386079869990725018691105346934009990519445508612266631423508661251265674502497598756950398610432628407748730127550466119774356165205370842865986184667867735553498989258556008873856154427543324162434290854221385621825103918209962411496521118503100393801218804498094335898100551174651127818634061508921345797071094228891630661197651503176297804083407503387958738779823231728054874323709008933134448624438426846944206222892217386031225046088111368006652541888421175452254177582653499369929651138600800741027340620230487986645086949202737931216665994821930610870313709126952399737132540385309975814913154995423990139861558072123394602975459760316483377007587771825828734693080155411845165392580769408122778403721414643069282531176939619244341314801506617973949652070744757191107303628412599066986095533824720205929364949877803945229268870501245351146940626053304178852435521047034575113667734617754500661963818241921208808397380702506120671386228596514804976192096364433057894515026542453389519706976703667448822190555676718700117911969937613026278777664685898739837320198293385475856981545160467595781051059780865926310684871742256366073970371133315571897122174711575709464736881167901286125630981315652760228531501360562481714702756523436424625827221912993808147277963411976521259544076749554395312420787932593342283316285195016299514530112793605661009694234819494848120085316782419587272850426169597578713913838119633794226240972136103757985813472492983733417625435292871433706976344722792941015783853475353343652708407894358944520772289898872674742740484848339023165449701135009722248795133268731580400777616995446938112267988973386493287027448125279191613549280379125833943633785510826843274216751522821192213364520504701441736524853373673052775993304466331746228693662454820127855966813344427298724428725099997883815935895069759266742277754452785223198225395420126605324413921784656592350591352564504974300115154753203724700562601048897858864627332306107639009429847348705213685734646779666270739036757264798706366717082817778569182345581632626889029804301732837440846709600095468860501877676107363490475302176894215736152697335549229452050423251959642216005712351909883737110650640462571917763261363644073123974043524360604898099425172889556529695558739041335141026988248048451686410941948124137851414856210522426849851233491932732885967027530009056057402771477463563238426347491158563391282193749698317202444556006834819749453954930404948709142513769790815924782193134271436422848089193949751296635731423357305077059680607286683946238768086916583204287837660863511834993728933593808937204730088504695966202855914649160950495261084680473425111737346349089985911777231516870873939177555617687920936211839656465933603741490983524784059822082904379182908646050311226555221525131353718590197929076527523296879814974636095717173139423128292926745910753622348037564706386621357860725673799893777383372393100111289659123976786185291639121811380109387605587417307703776842374480742015933414250423785034404998958032376121677351175947202529445445936401420825684528930433252944659624845238478412682964290794197831339041628289280961253295881492994833187677795657247184627306823031754751592427656240090519326492351411153855659203497653462770140468613285037394262078538365518225127559150816567130846249692140367467726431422359675640846252299768341260198868569774664974070091355790173618477171135158031965745221288778483338621173773028791022498552695770080528271231903603215854033182673677732390815788923291201535547863632447795360680745410104801549274631814955304414156023001230861971851434410767058331813577376627313754621707570235149793939169583495718558280422601398926136081916186955960444642957309945276924310364925382102688860755193232624742167899507748620875816486118194585172223522356546049903369154893081468084918202273499880423009423734442043442694934267899815854723901445461547805887439744897656866467087013666776411222956145372700199126267175839336354697272954222295918286846413156648851519834374935146754481915258661178319472647102971415994832283713206319621947821269223645603105450532514841665948015197296250963551144435401390468397855102373334213221118521208171197843587891059348455545037263508688267131949763073780308342035220698921760014114069597372773230214821135322470353203957525649770669877565941375280100373163475862528264915280311167525218394152080634184302889791962473579970683141581471367167366398823859033794514373537111820368570242834580684092034921486224811443675327825350442872215580087814400790012284032893430901019879204063101926784770326535783846811529051794156407477187456890340466432830589923960026722742149184270686318060077977380394275787685722401626576051886422849376510886640359204410603860752477917290151466704245358220930544452648689125784308911759593267785772940089830329201292694811210391594173316339596562858769040282000587564934571203658346546405901077095655346497964058797249584413213202466300584026658522430836645691796402536511023785188368038263793065285747473834067395416528863125144331209051730445172788920025966144945622750727071769079507716188347244949699706258134052274553137262087312709718464178196050537438923956944269088448615730140394291854648304518460320125944437200877090952384451980339029248077677303351618474563787853633449012806063571691919714073305893533618678943338276923320031837250014518352089679990940060604580188868126181823515089965208831121909774681600755207102403082769222517881229388340462909419478821493296594574233267938694393658576591717632521049235386262891417365005921683706006284478099570816690996105865157573451865316909883613381642675289627644828615531318743459872161460363137442976038994898964975630432955663939378214779188148425633156064943513557006413191010833856272339131999107769951621083465515007
```

```:メルセンヌ素数#30【2<sup>132049</sup>-1】
5127402762693207238127857636203402218800465862270699268312403841858231274305620361077749499092908732125557093200451596185805491533791569813459934004301403420963876503051395931102015314923539804274582396743992807950474719225956493549755113731084255868197796918434581937598237719449693830758295558527988434483984402926845375042397676916772484150646410917772519028191260065794740179769324698367726983862151189703959842488900061272076024459112340878109546457346491554143925842685145949023067551546771775954793260432752945481806098802929000907427445042956652440017686821739642342283937834042844291309099347969102747457019190141964862487369125287232304120180671718300574342513576699411857774313395067287653074850588324937103408282413195256438383787207278963764217585989297652130376043003743753738855745090992464814545996050643193581313404735505484589430723093798823359856272522668336385259952677756552856551289009892928585351817997597030498514888896397853351107117298797441034194477559304372109097290724770947530415951652971238902317815917038680603767679621050951143780665933783692044966565073528785267030895450902209416549087515755497095539312904309522657662573379910237333667849079849220423840762884973739500200127298974934830066840393158838988914961956695510930546945980827951096112962664643335992487280560134900886679764181190584527535596309993103344029282425364639953156663544682107454804931256238955533113496018816854182195543330531080906323445078316250967348939638518364397769154256659856173480003883657206670525805339385205102031809817585314840602972682019418846238655285164004752145812574629347496147187860255836399547712572271763652225900724547782484635289547426451805759385599266973889795734232290479220332115891609768156288342457935909120914007323909196438381794326456768293490507645188049139856490695855921347239667106058599730403070475897761777384876428450587345819993007719724539699098055541679729873655504576709009905603259030920627958993042266397424051597783360050334896922727141271478699045082152228027176387242258926795536797468085134528625106976095345191577913476371028410646742037674051628455878000216377265397452084015240867090868867221753597264076182115949014522094557935332115678514099817970329091688526234719385466559494653373537899003323166107149478877117006392742932314559290084835777094667606029780458934036386976039274781268555844995512614964439932924940312848333645844887797516295800024064774185402159078978805168601770447303316431713617130234794350541866792806893003400689202963176470263352023062089730876527043230463014879144521952661217703677799441187657662973384737966402581038747961045995695691052348543766640499372261445442597160606259053966068732511151005174297931072476442070654725728997312468606997496262806957417754746116751611888607847520118238695988605632005765040116452483003738222108883182645400927748375991851316480041378139797501430225910917778283739088610331481527007155171810533856350046610519043759763735287608317720758292043647836090336580690160570305468673327908088769346820644202222370805567789924652533710283013623161521566452434952081959455776793645596433449191241875779804568888134130384052737038581482023245957727102774269790268483623397849877307665566360077642424686431521362331535538625236147207010477726452714608576639216929513668408452625607706353883532950870370035801874995812813451432008448947266393601762979801361580687909591815579389477766834753251940287557801066551722677979963148412466936942280873277595719690771325214856788811424035793433963398993331031119441383882955389390151657476397193836314471258409404667849604708290823276044211968110911567811341262080360778790865947551395744817070583824061150098445032835197917407298691261013378898653579321522078640368048070984501086794395042330782390396751845471525030920057416168578236420486622426378767586883883893489433813011353455573101221128384406545741394033581094437631769412130294661724106175181125398050027695112993430023630323675490992939496504744805578635472179788333768200664819607284340917322755531869709230020828192538563016722363953568715031024807326998142181473135798116619125308672912530256683199051480596855619122644251686812232521133402619669222585668465906911136832572514562009274392880973584373798361547406479432084329403349301000394827230213855184882751071528067261670154680072053788815282747410574737453703637563630570435117628195978573859441739021314639609194570617468380964312984898051015808531249520173981451879164999414743675749804234774729611723419052649393703587908248649035483760388377673954593219972520460512648135037493641716623026507566948568177612501099277675842019773333090894923829100110076309867969151081052588982607951865471213313183245060597002272693110245785965527572016217588182180611542407587567815731154265933832507231884099577591490145058574363430855132369561744047149760935326046633080596172554087268798000846691309970043155701905733040446549921630716557714857851435295738244739711179222259227248795100488126594739221835603749600314934633344076353028287578586024598839126822069713101750598474670812758693292659161828026166950346748815143463334704542176784521435388672817578619278494672228806465126368945625182069538753150748681827976974516834491919682447499595479376473830053931431014725195530345010374265299332489104132410271977780102176440834625446012866665347194485014498192213906712461571558461856215544094243315778552512002140950670825241426485599659881554353612591403867412422460776539555531219070870630305526323467724773070119652811134935638289746292798229378856888363134940926708114880619599116394578819044020532468981521819176025207014749161838288323149490258523875175248280151699750221467024407911729970497221734109043858511965549018877943198319459589401737280330407518862630051588881613569562108842459004760199605403801598397565491823651148326901400520661066194241035982518345069096793618981282457558427497482957008675010720183774437435785017575700492736626204612419206706507710961635642170205274550473597511836675925420381368309015709938935891601621321760036916411311681516123297874975915480198703078663419458804402864305516787820345985693428927205941604062174961545371679212308834552826121715932392540107379577154361826818491137529526738049383903575651855103642326413630121139155484164888243377500163407233045622466976800124271944950319285079471209642615721698927302762004348567984609484332582529312222882172855754718970819602949196772520214463094595900354649955409789175317792173269967890029142271205494449345217873671282295612587729305103999979929743481579369070622515827110227043311618627937047489237015082734016466143123088742374780178674664214517749524379311269583238249276515231135759218285766054677815440082858362452031356522322619464971908751741399920517485355931154276760453082651439938324557659678759861325499804190722614943694407186007001553845676121681900718551500159385916394847105209050635766728229026717159686536605911843649165365766883524827564881177864241764581029132488129076507527512109503449158438453841719282138558162521299327913862781561956545791246753034127861941934167249886926595445327450131322517713770179490444309917949174257635990272618937449595783818693095466417625685161064435326999391106015899511235037207338465950393219711649816456256986656953206680202126257859098323891799580888242623952863477848461113235288921659445319444746539372174714266551926011086784963086727886600049141566177960851388542791184157027436634765810258245167882057584625826946220598415098031006728731057036482791782676668744498636690294917146323352239119119476127803088758287801924080759106903028128733032620998436991415227372083907001140386625144776473334616537497811627351317161766754152755629183578965914057612778898616333253680076989723132963096267843619665840738100891818504497613087480563689696696325338836257752848769059556895155023387467272471217438559297270422443240859193295885964922612907992528516329523860022414077126468190350115675704262996712924555738506087065654538334187094265197591237263839877125045316352683284056878031458951849362713050864416334897199315211131857408980069888681660777681538146464853672307318157467335972918696262359877612191264299497306856928716507175880622392842467165074998385165181483505794499544813906347343204942924289137256184514880018273066432726277577180260746800779269938881910307323820603929380479529421876015049476691320986699695942115897568483208244791979519901240375000591195016765017126144548505799030998701713970033915814767773118132358804291265033958409755369127853957231962590141743461569536779749634235639798353619572450258847759459694846905994477525156339273246913346759956744990111496334981805905230802041004715927427344647936927755876493290124167078164505345564766348558129462609116510782224937228880155892729769415562471445769931140855391511378624368263540127686675911547708352109818175644039011369749565858372812300689854048247048805169051527318082276479596762887555775088256570118179705331031761747334969615950377366798311061069015611318792118651480632269394796274992601445529601919756015744946861111012022886714161161147773931868702869884490852860743828823027319235368138865992343266288790246372010312873917433718997957513043906163604361465060634386474748537582400730530159722940939826048191605429270124336981275770338138973577616593971621833582360317980144298665533115957141788600721470250658181066937770192408683344698511389924513540955385986068357670703852792679139167249304583680796643416358600440520072280863038081592154544270747037715498851168475607560611138963966888983656284449171233326631216377400660806120540386444244638323057376171601637971899649659721093999368390685082260546366837300067443401507588760007711224203876302325977304818038603718630000255840302557459495179075549363582840354987790643328502714368104435259086032784633219981950714288365275795169344442417986953571445084667257645779903420686950035236373635997797241784433641752393914137341953392759771435249910732345729142592917959066205535292598448687723249119889046284453689168476265364011033941647276971920839364592580134373888421503390706541131854336458868715573463168468946708115745948272813055299026592675592731439680121153957337008007647968358998074825384885748671959019983494738049779807377977051152964806091449794192972501083985674996443156468519126946644957077909219434127902644367394435341912828719668752255166985852553507368074481199419067623767369591212873473594202232044156174331473080967941594806472553707555012331113745212709589763955361919122882011304686676910655457379868999971589191216488216541751852793814911404750535949300187484925837437651804785616959019881309984056548806270456116453370405219435372547595942601365146441580538057855431620125447486124780099894230652448279396782565238739301707121850930983800079628678351299301787704456611541537321343947537106101351193195936343602930122992360748087753981993233084344411733223639183219773778074034559366785608989524181683442408953819324520906940637386858403198020701662889681076874975308719004149166109223719368525619529510261110807516307297190175845962110555630052985302651462511656729849223504148650490706856711635074888335701589478377973269819398739998660727569675811617042408102778253624533207908630722333533136304860833953319141187521024046533785992713775724685202401271073708088556714121800183245352292241659738392664307495545997772995421658041288321200093552375824141717731884343636997601717440017201377429209130214217269181591888763203788884971870727424396746714711131361876200606993333760112725521182626737279646463631025145546255189465091442357976493837002361956919255834452242703305696768456187304448790007617613844578849663616871475131850204590577091027335977696875263844896997340942208281171440084942987470051070820569697809935528409206580581607716209090646554078181617114977629081540094839829501444013894578773866686079597383370192985336761729608733878631238593635368417417374881263553568889305307888189572488525337141762186719515574461226838677147108083491660413827052755050586106089116938160069477667723155199373925302340373549874172842390854711784841049290196888419132584703452626866057692381247929148657227857819802319538730633607454535685288705442980644771846584674510901124420706904089276343102916739950132888330209491220733889504205668830523919420976615490747594150327561032110977923585557947297345330773277531184439891775723764406464342485914416226166364694249554479287406623303522282581319216588937074375846411966905513860037153323322768929484050085524914484099663072396144466278534349846122524839944931607623607928908867919931011893838000365036674585505157797293416527639758415131263874026878221837674217823597295757639756335103814510257672715794434384633052687849789385892570677414345734175030422842519440702505760307742190422275627347238543460900216879636996989556428360118111998085431123774452854194395028445348594789007015764392608154412173386561671417077425392837274630896454817187748285048389574310730089929036737448134777095875585574516422081878258837443867710221930271840446455849884515717983251647725876969636912734850443435164346055033917516879631881271065620961264741404822095026362667332682185875364598125213616764953676101127681164288062133420309585789995219186241470797423391634213701830108682237186526491146808990228632983011212126242739170016294559949113413729541382740831559822863555356273751098038633680013128660871853820189342366024553248314451160677818203027334549291235216566847593735407141681888075496634171117541075264390666154171915183768102309568085715466031561760559193169183847770680748160024719617594042164298308850480956705556130577080764636389115122851488596840790111460370614861106491856731687957173056637121307923137394812714467970656785303199480369106290685075964452923238317355791932993212169480061725978070236115335240264266619442608348761729139966228197947621412458121818261366535187484801871758603078959673472550852239251049417056007219534821681352241405278386673200132642769954604824753375525332171011827229027485291404780578605204091710542469776515619500478949781826013371842116881908954391880977808266898271437171222799405411220215124006193981134465424386388514479139577993094752553950490748505910554576569031891925771090501147497594818927053935402002458054741587143409260726965960497642217918689714450184025085894395564067691997209773798735834130547270880177285121216131841314094971410791315730368766539549297867018145889086472470418843802065910159436478296208944120024165178018299849011692869626363429989884067672619117200954976010545718563777178411908517397923976244923144100403219599437704117440463734109281098448912475340720340765084931951146971856131734035685753112106983202648800746821338642298597351573168341944332049367210957576797292230250422788252297593130535812079513511857793706745510711688963473953815018563233128202280984168557302045451514098025859347390439076058918375892950703352687236643245081282470938563903788051753220214621017761154534219477943282771708164383363942150445814460815273018859224049434778463835564525614731379156935264534052399107389748317220917723962187042585637902676099779681343315586041988654576797590005713777635747705766048956047167864210244365611122529830187277258068103824913666385901198916611173662251645959804995219050845228071552673078439537490650755684972833045676193672558210066774476131851891393648190501139776531536810515005442074916415468874055835769896673562682217599658026991924624441652350908785301948627693734467992778137887844418259628199243814720799268305773986688580678378788396840506637125723442834562808913921468834672194550581480470866976802769670917833891420666355989549293274445922282980966757946143453996245344251567096725883299323244172602737239870789343028278268708575986883090609998824653415906820291573388953754375759087922687948606607755581853829585311702535820987848900759639772476078514212708117780908640744397057580907683989541620562196551875902368717453133782329596713779211371556412416610555650785062634085118672208488655147743406157729923150158390249202696746329681647740899734646173725445978270403430177119697266024540074986111456598238572170495974076889943809623971112960493513344390202181647996298985317086564687579882771785452948170323378468555454973229500301429827026978668014786309970560025780805972658866028473107898264331484367737684871316172119935309665901532295565911998796748977682150922965823378100567223289118785765041815858235128342824730451005370040821553134610259143034466531370479229075789197225114699710399735369890803816484641095300209053937180251444510466085026473928413349140845751190224484462062291833120232242119827413671527908234705284888232043409394504783728124551995427411382252398344638404161387902290179640195259493820427439930436949232927913412896077530229885037745294521476358038334182604126998658614415992797224390651531982694721302911841754380652121290041981182190641805621797038759903157777354250158550478140622451354393422822228576476061565487646550051732231043601217317976467181357312227540968393187561451253054789431744109734388447074377997628391442589712472842282496599855559594053131455716784391889958235924552124300523898607969317745545631160431353766417164227418766893320532256866734917630326252918291838905455016191584020146682530755163011902032819311309960095804246873510424584264096394699306670088013299076548538799973032145999136840782737011647657200888292792583275393644507756794465510998538320702787950865745704435557581732180066358676587336001088308072635841068793487992957731712602027373353956185468182032224148187974219776973615768075194975248907215260342147612699739640393935436190556969120878158357207895100853613987110133684459899486435623503745387799866299211102498028639148246432225992647405793335082423709256861876941610775317675133601150846659691926749923242738391469711159116336381915434424593014185114830017352541943311618935141791223901422259427838815907539432477614692381022944287306481176714620559009987830221259930624711672848003254859888710758406079962719178597728385829287328450105358942454471326496858171508760959037213633731926200466920495722994212284028000190751610599489876728366432841413993713650041386286765432469503718837950951571618882635770007155160313424849952286962952302904613085507681699282139359444705942995593019794309575508960795147337061359050565541865101793073038144874012765895974004081670571880097267086490066932356937441408800921761738915793270737169601644359173050007391399659705319944823320155135839490332700221547710738576021725700131597007211117915549173435084366029939187723140956398380080427798898797352946386430787204027994744397402811604775451118611474910269713051908084167669775944986011822680218291951261995876080342404819648137906879686707610972347150947814892260373597006195059478367088616245054986544969060283562691836797999331842501233430292058158566839352574814518624103868713810439750115467493230228612128575796307856946987822510338299271775422112471459416496340824380091406572347358127670883626316161870987168837437685071525250057715566983806993021021849909356128273394072107305646500011543871515388589185188274160422952303793732183481970154108997599287760243459465491906227204893657437131035734149495145221216328677575132194333446506345667176631215597620974834695637041743205155548733588100793788247206562741596735771079053326488979348054445699333806531340854298532422890121033686305427486377248424968995883123309583150447612825641936514136488908778662766665824162614285103851772757696117639944501847050739916190214328621840190238246049508716853672375722757539768184851565580349105881928023221584608563306808385742748297643746416576917013326835257160065833397054130274017870411302466098844864093835645252585026807153455939500056376797862231835612418791883257336882676544376991698892130054280747742764052613525727171592256114277216950416230082742613712666340597840453139536368149689850910830069213431355758086557065006361770564081111164406953318424427410344140141460372152570305387961548218181071652365192024389178544283337290644090110283717189809141306059691254328992864801660180750117065905723199839527715193240846977823544000075351368449911457369486365806585041421809662307727333352943270127454014650325140746827456414064952153607161802846013128422257793801728856210698051081608034556943203047881069109053166384829740583454965339080759855170685346856480458987088597471636271804061065678921986595548413991651983946479326358551307994846261116056906207076921789833793641085769938066992097138660245522369376362224530810707486604715910514835913440555702891614082341854686142785069296533109321661225583724367822116167355882981412380358232203344001198178674960193227194755857798104606263983590133102347320015993729308169918831021669177474017210922549809286899167718990197028764355130709168795292807275154892799928244718867246314359846113067759657209021825749265213618474869485027239088496489779227967047551206757423473883708398795322689888647500008070075773397018123204976257629745438133140435189863995238900348165010219457406111693593877160314340342503291950314803953383900933766805117123870849563197973607706904863219606125289675353238108885970756071955719063645320389823277627450941118299149736138057789438801615873813219580294061643754205701374228422493436724019602375986540846029626807601650697014732075281502733749492829189126580991950968920829446429776554938216435443667446122303572380834008875806340387258562089875690132134331844910322908793759539285036832837329602020159758375540313165102621792857184862098566269622648235974494388899955132715506548050406514563860948386730660673732917195444122946938666126451981442676509468600035335830106854615934206381258964326546632992670438836692311645980886579939856286384418158270062548942913120553573604058011673221575559744067473786602038850956613023213508010712157577360948973018604688450618991663239437817965294994048608042694240987149006834600971876727642863217693014151675544809258104365525453763570094549910041525044381930998851004347271426922795095018746532529426694858747324226586896367368454510276829527700894763084602086670507305016587563210647156683642216763749725214855616926217755354729722628921211227356488692447147114118683338122905327242007737947886307968922188310926100073553389362887211136940985148907175639648535268601906904436440829058007283841598871951769800017561623140578817319387968271309600971313614204008888997905484661557968388774162337359120890682582551196882082609682649560862041743676347162480819627616148737659396928054539800570795324360373126697059079847681963709140179399715093941981297320544181702000604656831768094383342026265342355112248052813792877679448920633195607207963302654961442325652308384793884759082143251167653201646246643637143862312828400666681979213848005965292589906793098783883551113058842301140585958002320204217922778391891207080626233962106893946358585168117675317289380934126349504615308452475980002444815584766117088314522552264788917355046642446034005982911164852865260130758721567195663065061892861998840280452035967538328514547198462642647107464185469981703940773278555290966031304945320116490166188526741221755819700815668331357646358653342391375567525955659676319717963687335641290620104348571872207365407845623105045972052990918978887058535838041196115104315915915195706888527789998582871600790742661656398056712409624169047960506988653384330924477755197856564796555800631824829684751937205975481744201715219072954876403580459288543840836121093346033950474739603268899591460360358978555598527025766909458633822943206403572439684659265234327367979568792867116515445746634935861794700811693393539219427233775225002041203728954053066389335510524480643511356365779713861263281034983206492765939840956387846384828606382400961985772657057528419637494535124501629492220657374181071548528752623113826029232854341389273772333319324917938530732756647048463899619461947350750615334425264414973770726745660296789157598990895218245078905144209608158294083153020269873478289243378270016506323189355099352165726255120210967458098692281676680845667259403539975857666392587556580540633943645052742802964773043400364057874697235587183178682571096440248304986510725580349657520465293619901953866394544015885860283067567133877840981225786204403320196385903895277967094807553513005747133125296061202114811182021802692708123145551565614037048488863907368155791360686228406915673919152126431251891728550603420418822621002802382001181068136211287973016133579100374511377754112183979439460117010625462731791365710608707233364409558878258559560271989274759245667018966444799843933411838359271896265324881705107022673193100246756729502107378219671573396006717290327248961844134358992677946471401260413751480310381424925275214567958294630811315585631585510012730450881793826682820765394336932233653373828686133168214759008463787036514959198108600947279806034341610753507674802670725790641716537440251821873198169281896088926526028742749940505645770773753362873956929810082732218354544200805458102033021046914281690642704923706092723028966609631506023252375439255456288252117541321471507562876105154285080355527148289452130955525158164424082028101790693796729301830143804148626460826561494718059331073043181693231033610044855674330355805026052725055920874727148060338623069741293943298256990503220686771738366912806459427212127384664995994019293953930788786178545674814809294962848711978633164198912777299190547831468951276579704066408950915400824842697890175604992063337994107458920144080557304990379219391918486597529997707933850546138180568384080200684556356993560235668817638583666024759384802695277050036320431673107398871251171577396682141242768269823140256115508880691498163457084801604098724265897940276501224436106029903402312708187676029323022239824025092817664586906926485980851856898518129581404708939735178732633894732624611879072906974539801649300044955107508098181900045149142311352439798244276931544059064333985786237067602587927333115887774081435129867915326819023230458906075384635596318973567605463150190079273843289684118858556037112546972758239375813849739149421461118491687971653633051930669362771000783987166058623159052423441849732062023986844391600713820348035590820190870669749587118005514010633050224555292880722764224389633339168109749548065272413153392133516012504126961520487664067372531532766914432502141896463595345991517932258905809592044262980676124517747680825218707595288624667114506705017553252613954594422750063258665272399010780930581742731180230303457146132846157049174709338950532721507730383905854210117538711849328951748295866047496785983411644185352883548074539342728948153620321461328607665747678058813011433711582209368981230794434220074268607662117174168339017936278695570560772202420820270939079159474627940350296914741248028272201571834695762959632772067424745696242592018843404897154782747460396763999200173057476972239971745935224807536090656350156484146190760102300669961465720776262096733126404794234629555840697756095532019076073984599569723866266216985519262039857550536981689337777763139434492073739933219594931123873145357436286605569997025677933266748155177527498611247861224791236201541466423658853840170229304252551041261898915687504234943082125689802109298098422338637450707308246238547575408993705952345389511696281558829575098584334914061206871103300620824741482996863817471523088441528456118083718072284972992580633805779583718894675341461828083442099384570882012994900700651994240722296022097485865075021157872052697914727351829909629830573732117236353934093600919199212363000454202747629226211262513548142896303220055286175796328640390695017100292379755053635251574742869449632188334377704089061424621732942228119408764395455351692021181462696912861155028148673525261822956306039849479255751124086613447907279189108206447370905796098627213778607050571284416539210210136479323870287538359489767507304417189349050145360616647134157763876215569234970198187442796422152279591551545003025472718989681022472833409388131116952573376140331474485809446658490429378562397613028703937942296701460133659138796188682641865294137760753206622874122366777428849338209915117659776003404889454991493772124976920074427061127920873156525797475431340917946047203382625717139323358437834083053178611638692459899247845870703110845430641930968707655107535599992770323868313026620440463991542402854153124351608973909148655543318773765808990711489993823658747308292435497266219120320537490746323294139203401144420915527544961163184200011688461943598942809528010433518391682499362611009070719074444546884952386706495166265426810077384119572142737013670181688227631651268847910110027594360263796302118678944440930868499771944818604720697414184352292875032316817359209496671786808297855407125447075903151638257069956630298086267751764955483038308044166275701170036735768572567719207964772834224545044972350894648155887838448419331731190434351733636234172116946423136988993648417944578030831938948721343313037054126564900675363079731943532033245942181203960853408284809092630520740724321607775887713001423026851705500458169365369642845177624487869288952001764911005005737511051433241938404667169214122751022327951246422985081790284327716059891907909512379657622799626816574021401348002754244981900237598506469991269354345293308346312779442404732961037135236870771883563613556254299905328910471459552198363636654235008066887705351119568226802190853759076666506079645385011573186633037606941854157939262437804970884802683784190808360886479186348379389892155400610659969844572888872567174753444363634040846731032989752557217103548883830302135942112865570067881183348927808678548700601054086749252214883795863939899209472702533868544857014705674893932843371468884725628834663726428657789535809785184593930867049837667564427772505089827749029700107095354100646416249923588567830290525927570180838506647803987770721553148449073730463152546276823936042880473369459153311368107791787656580039666566452186211898425011541357663276957580907464328667338729608042956061813650505622912605461239629756259662441951919279233274670171216984524344601396937289160318997763274962300819968033504107396205800553462116146510176250416826699377058115710350859415885623245034611000287783849758178421476442115817060963415606722581089259831315431264049806346339743965329111093290513621560743354285861616915972856298400586508130229288838842723956727150404603519915967334842012663312646417209586931207544143040017803650054775188772591843326008849159574965753461182557783116266448136033469890564045961721824740381418547002729588360728104245034400695976457924408400001158219354527464521527206764133196037441403921278832624601461112267125309159931776234572979482114338985819564574429305381453290167988885750920484971056850434139692244745590821544515378070148835486352052114656125596770851717365127822318261668377180426030779171150083972118179380130994461635807463668956385929007088166329310684388814278225967478540306537123809859500796391130215327960890891558168371664713547558350064552789796874564695144920578995493137502980473909467243887442611132247938853686048160727977690671132917286824877746713309966009823891246163424809223845424841763923355524521191928278429608370213407980729637177178369601852186139885235217412059166026596190486033925878317771593472590650822303213414772870177705984509102220973349834001384426686135009682324917071975642465820709473526917956595982554553267108280096299628956996192108146272759400505646929000743922043490355778948726289561205839963580847736489090850887742828490075042661565305180104163564976628769873551385385884943379991519592690961047183225493042110143864560780489778907145299804692105384034373548858828997143565504902290729247935832983124432348474935174954809372486748024991288149314886915439184678435716810621012223962465471062201735666803637339844618103072964813898402971368058921490309439612464119158935167919298761155899018910992412904198769344818262834555816882815428623158360993283676237940137510498386097144443575894880325984989602490300949101722286684277176448655218962891101463381473269931688155327750771485018970333522997254896570882927943668929863140819541118634592137048161802871355200982835047780663038122016063593041132089197122283226183128238255369509079847301190466459977277767468958394211977507761670595850176987682312331993944042601921304285845068244436474582089863974200639852256510985719351764767834242251278317215738581517293395290118078469503847952233153054518298109190574521437889171913381138083832047325947821461208756251104824288549148536663254924807884600027250768514005435284372096831678814734633674405473643965922899495093564671966549590084491520039432927940090850724606722165854478905974376064341042740354095485833535070467727823697345845984182516403677394736230730120198006424340791374713897973705318245703921648822843246551222503602575846803140959991599795013789395136968803402791902190836957722371516235298116828993351588249181636895617220416408329089887122096651528395077024749587210045140473823085195392919871858890308628862473856517011710077103831628571862501843405853078050022001798413660541940906022810908619981962969220131817538538459364450349651870362815323380487973898860505277007077382111101654026745715544225102755466782354183823105570339334706701662744085487261699963434905517661438288185620642152155604891926968981594702179901971130277668383972279329565695545555459894351080341571395152968684104136478997601405980712829107098261108846711871289678973244215239378360360028811120390740423415502625054676577416789626349787778079252659824740421576211385862462477828042292050203945698759939720788579549286046258564324960019763580949741599550306995694564304239815475986562440691863372008222591499394204390292288188085137558644011446684322904395924941761938457580849532062256847940999756296742957456574275604145061028094367704701905739719904296103925267995764397834642065909450309320915767728694463217833809369679130103979917841532921256153527522430739593987022981971342533337635877709833317302649962400219833904009853194700858904326776981262392457790375314420107703969973421417494974835547745568592013609976739162581150136125684678655851023214739505143843756770955035968683975803020435278224695079339823623392824459891678831769497237710572041182046697476910041679098480085674462342940391300728147597132452266456066761635430639321503494491981573236310143698881878873442212652748447779883255777153233432496542717898806391507602669569687520054231063023083067611030647954113074544307777936200527974484374392140892757479684210010912211473575835168148830301881697254523029148536109516782064769502922661798393238555105683400441294583754589214652103528631278730887820902899709668722417608442618722120774728336460428932365025168080511160598143181160927637067220934667673553056064366673344720620966691860907262599768539252877840848671019812602762343259784922153240250653282922685980584219506925061990975681213068365481871723163145283397740266776569320880699371703385332158394333940214674039277780519329602571060531363182299350183275999986860461243063418212241632160965532251316972060853999805809281994731415075060331827573369773978564701616990608446940568966889243151533431539177374216208553848967623189510874603928814259502748067445029979507017602987428350275471689040129019627696139234813642860348959185773128873428714959905456403820142414055222290572423638033485499050085363416765805412607906660948202608800301999410873759459792636275196804846806599255982285974542577401010879032606880163621708920602884997610204125559659894512560953948042869009552030978404650129171356899054263131269851460124836991457415735186296986041194577515702140842544833475181060231442773043788561562271636649958242971431341718280331965631363481066974819220940268180108285160832577877867472808569928456233162062677321222866076380695701306952427128932720022050643944425719193413868536412515009048386223072337307412369317793972653087053817074826368595009243324228922134282750412959760308058678082671976669091605917108557402533190203343169955383247338287373835967885648542134373713959573258314745788330997473576678389077894882772004384556949871363846882415658360674475897457828012916636334688515255541722870451152586484849928085364587535006790032879468766968546329018681988691955382814962191957682385074607837846528902841792316908277854741022093177224804006494974169055119576276769406602188907331925745235614223344870969855548164283420902612776574520848285249039145726717343124064188888210752714869289301000762617566038222560131326368874713825813740793415066256467539968825565493175916237620087707295645784340760402157683606569215223047792041352194782848210472599768691089988463056435326791508775235598431688332661312833175067721293505273093872707203392326953366943765627911902812836479905563681158843622677701168470851330464767702823477220972578048975012840729693368021220938198212197854467947606164958319337271779470291835870843005831723559357892056391064396275529394619559038356060878508879699396819210545043070911919085901748607666094521090876573601334082725264896082245897735264781248898450913756231649315068990064506351034984308245942019629997091101283106483669936210997189384071811866892697481544129484276807983748023269822507500502256558605123231529389565164955452460990530479438724801657860874598697834189991031706473529729247978486006279609348905304722303241864150178128207690735431555841639536570364592068609222085550855804357159395012987321194572782287747214558347385634080980451016674113371379812398977743757285530305860727452370630509948103057606136656482488603336701328018966694283214469998569096051463982923667553117314734211405917844507572113178131988478355486497583223190745542628484861307908433324102395544462765576695753382657060109684388168533854843123532916493949034155551677833850158236514152254231863754982662444409808829498994182604188406999278708777308068451599127473163430161908430844949344982234650104632462325937497602990738942741286686070820840548053506540171059384312484580917154953005791231115622362084050027871767502291120255511244823489873907257034428973839366017742208945864573428759903820145742758012853018494026897772047628029576610745074745952354612605330736606068308136989028916302785248644505847087332346917714959523977991026965389696016649425230489789492762503600391795734146395657570883119168159085594882185103559650094357375435895600569912753723726788607584528787599533733320544654874118020699528582090778402272110381619547102754712481739335383322543372212354258932557914960695881262005280004648997375393749696228415149386182687221683383343209925915204993964262910036605937014097444618151977818958898647908946939651817174012068666961943388185129162470637404257970502847854135225572794958947911158716562577443070262059523073743762096654319399642264752530867234620203170488627305412588443026036026063257769868204384295693510347027855901781477166577959058790387692172277188231994125770974490388398785326225913964134982043700815183454226573711808270509952995146304460446653486541488554915001004069010993070316659690874639503986678637053903714976947122308423231212024533432412834408124923550895122969460509023003374826662750699491224356244524729603078144465758271288304432686017537606032976431307211850708947254130783687660383444486397721495782031679977411565556602637191977338996093380256007239191321437760222890768195903217013139093662855578322852915441187402103433397948432487855398833009401724765419165472827998786320429102945424906196584785499513217711273013288607348012368268493279260403717058658594894184249773083050086907542750133834325374971854459957071292324415418615247764010289010968218504079233099853896500493695766781105016035501363245886524315224394046975356744436046151396433184206484240783585709902306172138491398542760432741212755677381153053892561883906376602193683236736730822711678956149432532644153240796400485109329883378631644703566339852138578455730061311
```

```:メルセンヌ素数#31(2<sup>216091</sup>-1)
7460931030646613436873395794005114895402287540849773288051133049777936627252709687806643956351409557300083644941548827574272300629992209408195687757874506481981443946824524867402922449581677424837048648328299865631531635212123406637340315061577534318140942529858971588283880868134463451237239916853909168796333674502254039533266955915753912516109458086972343184814561433194919942423248129480825283814784335269926552925800359826862374406711419642986578165168295620281522325379423774986019533596500957522218782723254989922317670542662466872067261954200711595255765853443639519218931888236025567187808280116916204490830316961802141734679873071104841105684443197349401151508334766947900287278402222519455983405494844747255814516548070422291987210019070333249948701602350499656670263759799816309780969766571051317450587582372536505015166602647802709984827779461147950179982690844074571568351800425301989000657563217665116760335204485842854748859866388508008474636722119497250239143071556987978887520697320272127679725663472182249170439556817998751936803261811578875073304814229550277837118413302557666254102171945641195871774281489727044725589883284011787561265989456221752718644622276423844508328745102294982469481608792637590221894467109035082364534256576780385072138718117910393932418388206378146190438651750718152898894549078360534177575704123464933740174797205108106895400338218315786398819214489995865647470672039603978195690352151496967507593173438326576385115328860578302358879437942334922502676387503973310350621870990995717739920303509347038015876743838313631262398836820372683525572784027128351580414889961141919835827473077789146107261505490878857628859683163251894215791618088086323401163172931375084066139863716553395313140109142201973074163828479260818582421719394157259390916447274948953749215192435107070085218664711174516048416004544555982555080017122941382037059757505521222536105986960013565000287270491598424613382757860325535339267687280963575303332377370277699704367731711803598373743461427709924573997217989660549275164573835706094475632617908436069725269737560209738108662499537692166499628672199113573777014680350436294196001338055067164493191892479372268510645875476447653878571602134205729931053245647200123728305287282077332881277608847752148320753338282913057868414913438994526371132366903450622413669195080140980962859401583160771299978265382689706764863408051050473727874991260881665362668046034803537288260055763772547069685313059375470737431275113318826912870985359330792794301869189381576516507191746192951203444196584014513968925565833397740682482512393374688319925444689599814861476082457894189601309669172683866983285072799581179715991126206051830998438658047622172386401520811337686350739566090476896028822317696363320258360501674590877978743650221018556878115062689627506171028670804996018060992131109327074289592725600307116879633205847321733153361712294862041130244711027384957896498788940568119694941106294772470972123782723228829024011343295776824714990359499814715258691009233710499571498430949281161384393383596758286134396705484582665840873040864753963825544216535726874211528433813093480974553773023787239211297472190760605445266351081607923676974238479000206772155088634217319654868977646825918780187273592057744317259867322246582138002732775042007256909550586640000615714814522976673431171560504673544422014772174477737235809812189750360517964348804201406759540965134539386546355148645352026629347021928172832900535422249810556097612208342228931454235302233386973481726182630652151353161651572951734523341179528771655347660648999289010695517456037196832320322328858126328384181514107871287836581334488099189063812198369528058391663016679507412355687262057876233005810710537043959904509487867655330962261400723445233090408842312040035248003848656209462720428576942909923824872598240458140296203054539562278296567069408240476909754646108534108597643520843831270929880615021691421422209031529938525378837935328393770403412065299144460064361405505881256679469951070420027030638146894438257491313263120577330501676803912726517808858070998378794049468343644670074062613219251170563977309613451368678332839157026229555794538163664658797606316052320204872741224528195468157451140532288752604941781285089800118139383912789094305645795727057408161242153084562705297125457871625782979846471579299869390890338876047104331578602161087159487628810181859939312523430404631482173761742359713244226441012393669659424841005154640852202336631781222151273763573992620890554932038336936926589826373229674899296524719238639151988096065584365134719930319409473656502541996207514989672283117431458340658493472692391977156860779702371465630412979236016967639428134512159101595671682989403126286704665395174421734203837317845280574112540747502488588348241839767367170162689670089770416905455298948161998647389026048411712788213611023037809915693767509748812598807041580043092730521491965393271775711728325637810828582450451964985675724036483360565893566444102905099811861398412069227294055669239192520780743742736264885725898675279012137880693824520180230827850475070431901147306037125529480454113413790358312293778195180820574397249031354036184401474779407325788344905550855999048117942320371282610541287509735191275757892282329208746097024851485392573777818614174783363619086615388371364573331166460587353447601129752154617058530813181379683916145739673622897146179982381828122565882950451137264854394498917831683874312676660849667773235526279657215421672915442089632098166917497823568597941524221093910982620543878014257846283797089613830940194345854418551168460637333650076809981161474865228010988378190285788986648518534126432053707603851365823167990472543328675086278962820971412071527337052564259511564505241500108961809894864523403025056740462992167609543997539650948331952393126975131259187518807251884612675504012632489128154104784024944746680892195002600441602451321878794644262734472517041434940768294041109519525503444365793223506077913683829291882156435768247083542652560363863589881602364138321553612488208451090608836660212709192473924251708375279818871270003592469666945757234677975629318930829925408001126079573904026713265676822381297931227222401923099073323972878232605703700447904224593993859117102185415521605415392559685310773242129600277587802434855408363678442159936131212782320632485244918864554488088727836716297346995075830549839968819666794328141163100679657431738250877657635984171369979248815686831733560188495161302626867146934586835208100892123163876958808013488884791947046155496235400477354827564542758155481191885646207706250191532066895492413026943604253268924985674778975232781907263454376106646718911737923085636921439648141584964019787408799648709577588740382022436113220634621750083553924400145008877945406001722017390902796276909310280584100886816602653460350524893289768715371655794902940177646259108746184524161128035336625610861776367949956908120850568866856003846188881870066216015968853735245915778467347201967995043909254260364049336197399547278426653462502383715582484426633533872244444026953982770873607352130783400123585005689080092680224434482570905083146758436097133803205295644023837063452420114615581573784375286992561406756237409786170288315613069713562013066094673795374929983833129724555862730859183901274746288999188218782129229637287974886645595000381462220241338327054730429085726583353770472170863110672459678391530584452837770872138854745496523353491437519249903510407892376782786956336773077949967212076911181665733617959795654095799513798010377672541800676527235308139391627752851523896289638168244874677767041763661874206730150799276502384223377885526811579854864124400643063236462702795717560432214542803197046268826341140067623791288265523439272008521480884546230881874016149410541170387901513012136486457553637110847497149004939553293505082217261247700785023849717673214224254166807390093516834671216691655129445515090877265347582213025470815940124142588493667262287473687386231266947372432672614275310720645350468236483687117655785623369135836831294142046717411256907532176792864234032030564136706817853148264449385518128076510500902734987716890184630952836827508557692908488954557070667821867647320009648615553789736569313983801363042705881757586578755902447374351216399561646341665419012441138539404963462480582530548597741826693053518629739207494031715916070262408444436801281207450879397039199196218661788243301337761331792445926215338477294764836949552244548060628869795866760324909370005985697334991938880754756918533075910388579606178831226373501749625773124037483259107136232860958196747965105460409684040457552294009996487236498946389235609776837727330332645603367761592734425512218563984643639918061003674718869539096672094806735867401486745918324635983786170521922984790086460237094581722753204716496422651445314729178570906595784437781251349363400978071891260990250840042490213098932005993557175732521073695157852096862837272779708503050034858106772174105384352011682821820338986474895166119702013684408872725687752140284933214996199461527169247725321690179825736569265850762116602833672906118754885696332725890897948796782064908643770090867911631260164559455822508900207604185773531769230567011795550844892982490226259684227531265653154155287634708772710970184126192046410213307363942959941482336678394322530027717367065934530135197806540241581148933339042005108051181774872126254592862418440038797196382419143875610604614004007539969739516655801863739558713306692332753136026313600025239469902063362490226391567569843041850127474339206288857467490625276032593837486619462578238778335494018341960426397313226616349161273134095752013792926219396446772364968251091000709728026281334039220222236025424008118018302074606942343634442135138172605191956300488429562103702443306379887618574419429315912793708820626089752070309830636530319348910954773496165921760346401233415101658043763737939808189348448346181192212793990669428181027452262882609662041690205838782077105273509034628399278777151870002598237082648063928772752508755695830737771984562661568176800250362469850574540780617753974988148448294014519567933200494997670015704468426838507142206870015774528388776206321473679501603870192743010958010286320982626060103858717853774998242439263481223360944413938154448566790404535184474462024703691291700883979078991908739071088022371120934315142228572738784419168271702181865407073108779324104488894280940324406456930365523177029248975737971394657068065739610078083458779595990995285186066997027190271161320680045282427352727744689561928730450205790256757677789193352160242037405381183893158686342541292364479662436902076530577900725030296628015124722809636509403546010878987628253764627146235504894753140795103456587998170753196361468810362740679426686003538240077501838461847941406835975974397289645982569840206101081121740761886247008464472183255851297700192463165591666858206796412215301074350192095046096739714816574548601830080296489013847135389849111074886365914864544222207442415896128687251772428053586541089494373830274499433604553930067363453681422210011237512428408406614278720467917972273338041247180834111502259724794172792156230720666426583321923072696013637665882031129585953185429568683888619448296129979896019272473729221318663397308243682267392001382019663441252657697367491269600454950843015900727520058318547052982892287144991808924749115808902500643772630957826884612439494853673077056678216596242072544333648362158591112338275470606648140308866105576504681710908677584888017683166366428828112827419562850468354184190625276659828363432278886067838364276504884321898971434770286721468973674978834248233661610084234376392461891862783828447566939633191256013610544536070995338387296794523830641559906927315550941247796339284255418453519180423371510327474308290478259537158737061905570568980210053590976824105293548739257041837255557483406314470572537301591403772674726682240227274762885787542411324299523078270268112777390384073959425774608525210439572388890312811134895840325174391152075416435874287859720004094173595060932746876611657781578201691704406688002235749118136563237862149165087969674836854860421945498824945139930952606224322892475687546418250293820055564019857829454420954787799141579299087049032176221303551687039160356704913357110263733792292662726222795799636886458436576617984774030366475202341242871656309413903208222542108819425660255118042239552461440594676572008199580517900941563103484246386862662781800148348929296419793653779889534877393103643295371746150584773819483849275126698171753689818961415664472890457296187366378340677759170424652347176151212720213061369415601726908093955828481654633603476708528923774706795710282262380063596065577136039317757550730472020824406258636507256737203775375142780313307616071432406535314194389281597364071718756643610411801614623174728730190065934695473633177368704858988171058382357180651170035750845648002356095953465783751286462088747645895560623269699245813957523168989976823418140345705824253257151579005257135499572467048697455288043571548826093391396107176573720825789101650915657005950728623549945053489045251030850279196217731906754722448493474983361107086477881868190797432498903067675020052684122768943871306625615968442549764271494604195082883194952538429912757585621426995508236086045475208144668591327214290096776718496836421574548716814091059364561167582144838863166136179688211932355590536518525719355447929793654690600072476627144223795619437191373897658359383121514134589429151259639929818550942249103506502142419389336048267730425575587830205486803543462251194850784530122257180111290002942995507699949368011418169063400844448574227252844575758610862155830307016683102925430872102663149671337331479385892511692524271029295007285293163900388613603580485693326658951820974583983322146051528766140421030902549773644562687872382783186259294495860730158214088900596132121109362597288035119378355601276680063842039264852619066735518561789798098701202319277173027805170457206915114364208213450869100769611519673824465320484315219202185647773943904365136316480310268194250226734879165715431343110301977075314346274908008588362258537943736979698899077636271221614726471654944541644922770426142355394315506406208577922787692937068340598853711077705231047540974087029824706717904823236349040578546857694809638753618159535987087827338019784107877478908903863558508410590682422099224064849138686911838801755481584698054209725856051372285438441242829807998349328893064852836236624552003183479127948796251971438806391017673279717114554059939327602317586809048456058671775317426199025712644849185518264552470210874841418550757148097436744519808874222613803120396750225287662884005446753423469473144952438679945465732271503996863739978145240515409397400388229800259542939034874013748599050581260133567233284189497441732058744693469074555622325255902367258875587670936384033012971829139266876149119096472580503144954580184804803687691303143039718442908433135542581846277842258484743022426554133138712505770010459366987741556394015423375157117379043997999750907501459236482707853780541975052424376719678704221557166221730959143839905834500890544405406703252941812821472005762456589131506375897472642764067256107364905597383728553358964183451759090674810192439404811371126087168756650727929213593384324739603130788213006941917912720952723829912560130974977359511879465056731528527530303331817227390393745823069588065152614235732645527359748251514331314824450197306565047101083306192316190892545232446767995337490673163550989647803963162941265223076596931316646071733330408754029031421042520252571257574844731878525366562401003979864330544458541300410720764217681707423953641045767208600905754387484600330694297369615926439877492949628767788957842699793763717357474971293202762007730046047968696342969527812740535194488016235487154356701542925608900986451352528087882056735162608712602986375166850699024535176971252860667785222732303620591167126391347731439940877368935641946649910242870217683251701206969511339499599027088236685069058790508664551660109247409986909189528563983656299417438226319823251405193233152070668181055591347959432914566064057078985999204179847834803272944337219380439057213002694945489973282344041892612256519665978331724740979799101194761793702375450825324528847773156461987035379273520659326466431719214275329455446065196954780699290617948219810804490788744265005336578457823563052022655464631818200180032911031418019056779953024374838907260993014808291351165218235443891080758542850577507210685626966533751656847191539258141977526610953138876680074161253447330699748253113999211994988111542461325758189228906780571747169591985171027464367897285220801231617763634184872957965697288763340625850086580546893295112816536146419111341915906333413265108133355995362786703994677683903637696842489664307239215330357852167331711430487742087096783401765322342808217428750579413497321235203017414028409051038020935561825992483457357498467825897336245891727976754857949777207407859811235828535165994154769904847954889701852214848180571100243318510863959796015722874407608277537889507968066021183257544487525867076332734416482158447595466359648676109416706702823490492457817229888437058883492372627846133415190365042301590648982354065267916058503197173253997914548608843633514472529543163796420110589853886546313714457148218666535249449875708001465151083469269726017425504925632256731637539263510617741887795387172862123328462097307225336004820082842998136647728732280812700192932584357231097375556075913700819131764482714547913760081695077523331899104018131332533430579181844535682481073500585784697776122500286548708582164949390201477297517482182895650685552835094223436111976259193235553743003346713133255188575451337056521646902019880583944200834827259036549834334691181886261292908318282148543303525814227350307103283320540946997167197311441740354664979042115023066231286951427202523911244600048159239553375272475047726070471946572928917475730906163975701486934471623981612899330006288587499977028811596440759471361980326983553199244843673261673435992527146666664043005538063029663113182957246800067806876450820398635362843216928998013554900637876394940504402631630845086019094706433496410008435408447030012476847354541432364449371276714715200808021945028292137591701756495730987995236333746901096556530711709371522767884709718356385303323783500280046998262716918284807316854704428208908581806288543964393860245325552741167580170354202913830963271072439786597266049586359534903016741290433797543122015821941090418989003945236489975706396354987987427862812418982511754370579670220924069603936622867709969725965815600003172190925029298954170418389956761421347775816920853722915120160165050918402767606918195531016269984929567243581084765125187951724429102599720099762766698091114347502573091022924287592699506932636943262636573473923926230388714714046533427767481734552827513996001279031861643155352983676835597598065314014450453778016669475543174289011838158312528835110405786945318715774796306129308246732177676119483624986642081075706362502201354934728144557014544136887243501685080698027447872833199465308379607315204863989548480551065226996105027779243967257305147140181332016497760541742667466622449203952028099516508533586864848925905198163149943700033429936308729889728101591739903477833520681494784392293694094204695623750301905627440025466463339412667031186435747812623818517925144141616215693609049423018344667002944227445926690813362038752216859470990762667921549662687217930753324911354739166988421368580970953735930718168621463653593185680900694901556159684857925361227814344934895975729873162516982964897518713164427545677139808209748131602885366325392198227515083311648147863440897299863384104888487189454449365935604921529037282436175594776512037977276429963583554500477172296326338395411768227105329448723137344338819902781656755158441791561363902734931177939022483627046463791366278048087605472022164393840821229932424640075776004465813351520486234041150033011777334529286294697341859846479926379957697364653783729662828107575467495568976582627983132853542598450923916957950122852027590291463191230957868530874367091232284732015270108545271863435371195743461865523260731603551897314294170535641774974506234323184907047757738183455371702259189521063400116822782333129003056833829051203856738279422962585312932082909067417707871005252276373690724057303941185731407997456410175312854259810045595844827014054099830983009145972139230331164278910640416851937864879386335591721807580606259640267324807222134604863550774260594019774476030707473791409937581979726691361871717519901189643210479919036010071880511700708521106912683441503469664466900788659563639497851452186002269312718585623973275151462908381943033938948661583673754666737555889332697355822522323414800645429435134019850806325286229378425045366574807585802409738097481894515657741700843005107981412555673493052368031030900040928521138281658977606548301707382308939737710573630756441188081180336653471256132610089727561924933239775478659395452002803982126941100943419335718858278849490997446470106042291727593658605868717871022091398520899105336468441739345261151172918353052628471347297591209033978580187359339009482081665917483839047352052098003813833767584300658366186154910172311724243303288279070048526479804932863768234818906822824434507234860986021487538288218768579922950146901531491751641722169410333872224970839724376576946081631838159832931374249709228317621330050613978735293823511257033415505834598495164496569584155950331711692006354955261521555256371975741485656053343987639206654156826629072424544501469837572965224617313831205655444534413939688037866577893783617239752161239670005399944558716142714256239181807276455486538141034048838395816802496481385628524345532988958618028892533430799919912594438104390255069740777208244505183678127740330515020335936049742242733206407088677894398463858681242418634327913922172197675495348235508147648350856767639187633690277978910095150420374625338012549465092261404697282553926470427241022189591897033919108437850103809397999502526105030741749575970124204556224280353492625830136790025388338431285881983507878531532762594144282511415252180871075364955859187719599703808402142634111039106255673123492749693580126593619338242307600926564182287643646971381612164810668034971961370875739719232242912573635692813680237373607123730993422114006266867652569435864421245355450393122161995863405276379142955874732735697364589969869638091607520663954707157842832897221917812338259153276793126777505188000459584102441907381910111936465137640541280410809222317477976298486892613676745074996401729788154935245690980532831064448207491581164896615346427481180710707123047353179900492007513681266271329681315316102445427015830018952372858053171811720154997812146473796980630840495956443183590166994620097332845029405520395892631032280765456509386707924849168203996220756597221132363764128294082910472304331454637846986448820597297686871498021378123412234059797293635824570288709133168219623364152428540958503245614868614546595658488483094625921377562020899017515353837622113087538222423439117501048571678273760104410207106077638609105295878272356875012479805088141262616976781920292856253903610620842134119331546399808891636248309476745000928464003107116672306203112294573594162061322211600758848892162584982818051072590544654329269368440675936528309606025586284082163486026796727271016102380760512926294284313968855694823580987406867335110652166216025845928354269444320905455026169707124273253169895812085785057163947851272188709330617467950349193963381441469786220543570167897125435712089487180530070590417171915450294869561073064143887482038310291910497135307140190318531956538127791671070778154407109524120265166606046389039091180143956438996031732008471823596849383197430788793447635219862501814814750271822848075879578233384974242970382939661384802140035560367948365110721754891150836133819118951192902001997456823786362647483241066780008255362476123852314965602055895831965636500647744990945818931340457800035089462097095164891685964576800514481059585046760431425929601779870609604895986976911598274338262552756446917452404105968978097580285314575886903886797168520488478973361516955758116002746207323650420614584295332511203228034219884794333063277030764453741692552687059248162079606627923000778375127668440132243473421450555306623692997302967102985461560253116963722343175659358967425379329226136852402889204776746632105092157491575389071080753465121742986513645715203077212177908462537166510361776845167850538456701171889873748041998686178786099480368934157149493734212205374668311100729680527068263018298428465481219996764662535532030793066525986309786950229070224440893944820420034740289547407316445653491216114383842381133201334919623916100715023581142809607546377429185523366249999207037941044036613547589196749561689033151798862334948695423863524192849239184676367648616711296383534620208959293920444675238927943074101897639969940856462209234940339555651323693374372733568190658538683617455959441715167984038664404285704506696820803264379558153801918354899478413693168780822179070011912031802056501962403651836475584363190762777915868452362364967846411906527308422572355037905978752372828188041132047990429204787350964071446448915686475865365551229284234449694177730240110125376786013104387787001772043212499233808597253571700361687233220610561050690353242477697930152666475293332723572947780498272028950391681692855766788623787903835753352047899075680688049698425112482268516185142037597093220538250731204832228218369123174929003872664546960107142752272982634544784382858848206174855102053243624978478402904519254594885497484667975966574662643363464575875292175741638674335577772740373472706080253084629445929522585032410503104803483811917017294192791073424746261815705171623209513616520813583246293004615717043819480745170641272047507968894005556155652557784151555037521259469287773917707110848948387983946912539397573386039414388835639732432963913361722081827656342307572563359474482336961190523450994630584286423768566012009291261961024489561954813348860600421356395812533142469982662149362975439624041459238914608114126824147932373633176772961182076417693591102710678385616724923469944068641927400479906744302246224571061115794549096568891002683806306365524997458549137870029598323510041955930017022173000624067066753533984816194648797757319412041075938380693853624956905181764279731770355172430544006885935790115106993662771717446644283804036470386895351056087651083119875259480944851154270737234004605081678899769233543447701563157082549809935349447919550574409248179077208909578852130994644908576782467785016816111244360994530288130914945297207067255344296138461293179978428195869952938958849043552713004081781112206502815068690925467420087429590595812435967364108850100408811621671467672436675381290916847061355957585010118400173940146849934857364383914902516988840379981371585327742800757148081264839918564347999843713156557936773604060175754960414766568997740515631916136863495316760272472631012547279502426667748577778131012657205692992245537924514477539843873958049956202611329944487522209421790887261163162380217634153703944146515316586971250684209175075148778832410224181616191603408595362299710354173970554371580283957521539881446281534092018331464361402646955386481497819878323778651937983026010974804142337740114626029762600118561835754208036042153808841267699536162657166408786484852555465882124432238785324719001480550687621287991730782302702284499348063462550634850966721530147599948555667680983508654234924293842226185868235979669583891176267382433093617859758719737746460063882514269117615582040794120260023450896789731755094437091426573108049301845812803645682561737669374933480255455982543830878588578322079238213523789795309659513829822621243813032932338416551608647309447056276151275814835370429623225581393446825006280879676612964138171085892779310429735442347686188236851238472128365518437963812224062221744426306975052554948916526497371801596531970972548624266620647059779921741548773079752809709807123037902052700315888197114252442606142228263349821212946622209813255154335489879643262584838864384121725255225606348167540741071021957330809324588100532061156171681072930317916687954981746512868374120028603366387202504878960103205566306786161582717183898934424829143523694009449247156161320929050640382224686387369022641578666708683711418461229255711411474611742208145112216472006307965548181517800936133889321262712417220387221547543727801629066817168016031780006323991664784024644977337766415086343795292141317890049426613635434733432444782210498852187155627190972502546706827146662890395930826186133534580690838653288756725815203643664449739608896986265881631729997952710724351047901876387580636986677503992096636230849763570593667840552921678840942991546176630688452069082227139940975593796583052607063471009979940172961310600133860783145937080348378671821528223093473000289989000251651823757954541295658831766226163127776670896955081890305248353910709197314220605742626949928860018671615960934753955891377306809748712920973715695651740586004184963306838990428973712712010916226791021080790930450308042725805038598677631972360239558006260302715534442503044456821108953527676801750605865376284786546128768253535219656302254727424853851831994804766673976955913303472730615366223004485609256046554049031288089533450491256935563525571694218335148507037861363640549908227352179366952151701198725031926316050197151893949347908633631942414554223709697484535483084429740248628756424529334735935138988283045379013985350196151936377378918613039877244125524938525928725762201710305010746630054859193931396182980623276740135038807583520150585628128404906016535427881494674897158722134076659113460952543519066299773944582212836349376346961607475942733003895094460399790593219108981544380001863897608702053148033278648240026651764744323202868195967561197071436347094727251177341425401877302393558710840680150557955890220511245184927605721958627902106412196284314769374839569540821083714931275248168243905051823681113853636473208373290620487464396321701715570988850413663879921548543188220500440588307196167894725541307546566495522943201845424213846621292062367717882744917055499566269771673378793567627358213657349872737470905145248069277073770038326807485417275264667868033429188261455826657340880908376444818823427771001348776794959848659393099209336240041459356603128659274516007301098133125006955588797733860524392270746080005240793866116389851610081141368675957215053171701653462181638739267488891287855294474765393490611299581464770725224253254598097644989257364036392364463084643244359371943717402435779808758949337994427157711121369099541879395379636125412592874241309130279327622286104702604077243320693993723329075041030340432490318476212857171496144331635558351276175720355962781640434047543350032505172106871920212419848197823298630128403869754717058085635828965225458026650252934253308514547585249728082619380150457497985393664202819282840586450019587142035932953576085467141006318909914531646933560603094552672318182818363286310947985594978329856594698319058270570713971862091066838286026905090551423488196233066330019263450034875607474363100609839309417555385071649037740478965735419056523566810313793795310945950308005905722969852116311247947333594536240533465386785751277800359617557667545384502764129131326156217438226954432168060524463920890141270062759343815461368369903937553119070922971406890711147446843218856359267580399816076462857447493195895122109903269877558863647219121945615511586777576595101530128284605466194193616723750213512184578196640541480149874769071486640049143165544542685235935265723259589428265440345278530973180507794094499604474823220835658726584604941878654291603865697351951139184839361231619146657385076096403776873195136354923107859513045834221215667283263548855529939584077328645180737918394913565319093482306999891274920743359220659929538009183489632478055210367284678376830654300206927511536196684677951115563758105653205700918121592034274380439463691936626669411970150849312670882624232739576302572817887568621510766940245658552751379769037258211398482343402939571160355522575053435998157917520050572131367671575287373139057517166811824392951726024489363379734039908963783552767641026620893932759874303748803836723923737979539216566015465472759313690511546021813241624527816578338698878916200758487700212713894359270589739193843932686056010309273440671457981808588910025644908938323450010535259875954221608371854241467842353466345684930190602401054255795462175257970575504338011916480924972432343902788652271001318774865065140092399300881819728207588575877095700262312741792389805472755022275718616358861561172950959507129629275448634840200963029965066132738651755133707330461075885991608744488385215028933845285909180886546776241195596584919811661469943619572480848574448643416617920214408993508973026242187571199013728716632782839763615656706352389995218546937648863284298832041672145907300414117165942637416630754230325689378061028836623342239394133363779483880796098726613456085326534980400711506936910484060202040006709788708859658801063257615103788541526668737942435022241897586423953415051541915123646175735139705258360489731384399693335723405888439054316324562770796073305122986545253596379408232200088441624990891863518146994810257968250884569301670354789274109460343199307993769179815576628620546624428475475206151395512139354692812764800015186531296133502924976331643047131201962358119858838144767394624122298706583878207714121086851430342297732161517467135356874259313479229532535454198556375642221712937519669719611867687923329483936133977473093704000996861312021781145788616344858036842220779651741596251684916165415845827661120631703576864500535941440668623743015472875928186153193376064794276780136397853413127954342425638537598123029989361115446708443815858241606585920981773386492834410951061274361680481098260178058058280130082393124981493338116719650970826796823806165905361750292961815346062828394693302147080207900832654181631440685543427521215310728633785894265302590372973366523969349804391251800440509949448224613353807152726955216098659958970145694906970816169839509823487092165485478711495898914629793584148959554683518638221139042501298806999659008764283265564277605791360081563847159646769403725896187373263142933001482383003577076104108656654655856433499726024005721620424529708699089834838169140357338321645298368329843134595689025865010044838550748765044478367612062453955112488354858754885579420289570604963533778504300968256701959015023434989983190756333833013215316706016560634612742837487457617727926290499553779591194848871590717062167185277010329548898671612576714953194738972745058024097260571774374423593610146551294659253225788105502344208424772276062616178291537657207093408691767982550861923271226437553066338685313827901047661687644835975329478884678129515477109130672226299300025741108838407147649613761085589360895176814267331037397964861289959120232899524933645225439567132415297946553824656881034407691416642476238551960766575959016015281157632246379147349467794224764385741041529995836516570635194133089177774487434877902568654811734230894487050384072046474972675703837090360145664057889008259296679629019752855730562166029359541072565928894553055712915606321355236809693923036190030868766678178869545369251463020416799892700054117402136916939544042166991693616059141296719600764003792034244859003029290461195100310811063056171328826980455608971016797740852373014415759195044986573377014151660433970367962139901936089804423679675928914950991389521406708139296190920628568328106891206032048683977848106662650269280961625104529239042064226237096840918655396120488636221289792403488678893166757129483181755303143764425638154870869720542380886578072895943036883371046557840572966903965420642221354729525505922185984105738810536760022178429588321324439395912884396495565028620892439203460579486023554493685050187847159932654055636335778890703558298802219614575088633380939084433700366283188811980091369822712316972182750804402104441228623546616481056482981091008247850338341718137310827393252882646967448264951711384241108204186891528487813972261199279508082171546668359160267029131916947989350027738267632934056457185739493789288154923139414186463825079164500524717528257869127961686214078537754337603393632445454056497000636391095463616400687285374388474436450828545240356395524575030696951894169347233058366685830605377509648433658063984246509444201559152380760408390210503943542556627046885609212756392592137426779186220907415440549520358596782239544160692620454044852031254919463300182589987839474683789854456028237548840356504717916386627361845929682982030070188509662621731436657839228157260762234820329665118471376249614996118733368311661540644059366409777516247044619724145020396931955210138552818106113446925427618948858098972964545515082299395912798657689438238503588978765339834101118513542337663243940782992104544515445491651641327209763629217958332500428181070402114203598354426349377031695106919567607351088196796130131273659378892168847509060132449530101321924651683518688094211645459209744427869760239284878103047896573434358040426982468442343613090976500961298379815151471217417137222297090771281076274625613187216131773772532709365112546480691286690332702463135493974076341408126025059531952624520300191066963301177877551254918179809624114367985317807512730953047663912935277596438667138037824373239367243727017052856600732892418412251210985071404994558964215568828254496363735028040205300217658680451608386275710712814741729964351024992077043214418864509129288708275160109478302710295297852394561383245042252514300426800817582538655121931270209712957026038362269822714236675861914025800056466902621108430952343245950655928990714131528320372658128075334871863119506229486116487107985104689373432619646235111713344296324717460221913420367161018365283498592177867156244029680285033253842369578972178592491383561930034604994958028494908404857689053368684502994316193230345030671677131731000340230319752158821602558575342285157623505442970390858009191549729837000930786900918362313233622046233617122236140574184152845748151170152661251009159635748609467657254686947010883841098314121296867985255438618602122460752380570747771454519827471535990369526325896321448510512789764601399359098336689511981194442495033518294410601403624636787854781889373905073254214491219516969983035745692066756113052360643808995081503042176582673907080878158105913909392974596519355492093073541602049304778361706002910850678803061153319446452652114354549153936929323981691207661711062169600446219995500947938559438606911718130397765617517716304811115670655793162296499878732931408918240245068626206103786702622823281303695737607842163179399052469418213820638551226697618639471917070346680332196123166282429122311285872371301185884752612920821210574158057800010789170506157742443139480294240730019815170294636301103589469811570030890164575678047849571124884734805429365444803677876490769106097996425078924996918082367950723124570371073450588866772128771341231146545902335162400374113404197562984759053540371484031224277370062733811945837343594181849988899268609751752419550146404037459268622627392302200498835016900408463731921761790003770630290576482230979755194692959598313197104444696160934050393655421067226030211223625806926405417378516471311850220979562493164091836553960521048301446313394175788162874068523667512572369955566894364595061603649840623395522408818136695915009584846107622174159878960643553236640954953626347527261941355166142371863204238826234473003388196941252605566865731572059943393965786429758219630586702778747269398642618551511865898393029466717741759221523873912870852262885714364569765233670741293786108515905508451876931117654649576480354823452972671353815009768617209246671958326453163620211462974824738618142663550183764376493002035445008907269982195146536585245825235195532848451545087027188058492189460508933348125372796877581072010670744989150890535427617252120304371955254303592646141905341111346233782504091412299493158280553059576647424771043442018643738204633618580331535908127714759012490052591105243974325558158068627368295659702638586369321935978663113525429679574219715550825903976635007905591036646879168020755240478541994275046806883212418957005363754903194753849122260755012067997941589330272849859788489109189204323647120499808741386270876652626941602761109908257142740168643420486991558155282001296759446834682439694731782616043441491803039560240062756823528188166152901367904838450337058860341091013921609562270626565920503976153052109949504945171551748808548698596922315572718976861501009088278746131144014425565690512416279401436596452732504692343749942829972299547338664521481678147123961645499615609147293572751981796604629343813740537360866771927552186573664990841524703359976800761609962248444641461583983207974493093108077361578901944946676127977061700889272592830878929871494244205586158708979655471736645992699115482719816726888334356863906955034798865109844409055365477263260050657247849147353945983426062963149291177447168034306947811606283363313476426667588985699323993119538125566829288497823279311296694498004143426229146840971096800304830414197080615073650324340892307775253257773273524668437163384887336288514553302182891950581196774532484006981190757663707479073097531942207496902774178678853191412408688822839018603673119208464102439231310784962063712705007001541630276946686940713474613836938932900721498377389985981746380932258305679528530161986631606476922641618171705124064122796956640039765637584195084341795294581987238653131002603933953070227764334192432670161693347247067662840607270630853212551605717946628607963953144765457951399877532324005985111132101555669965441401517130110066707256610776672923410169073580465267893043377138089151703365120771778363469464485496595573836004023318216042355777779071854100548562027000863857961386997730418539214303335602484506003250197542451565247142934564018545859440595525840596723892698497944937478172172678475475226420348216784667534140117669351378033925505968935423432769835089022610398336148141289445333133493024514724841956915248944327715090043656630139834561129297528387767131520583093994290939381211787536913558369424778516575365402436430523070194638639319598099266769876094368195594151511825067909957954610853330497020983746926474616571786134709357174134038440802942601254583469410464682686203163003465145256198656860744595131202300287952894512575111191243190858551397212809469986294020797503586872503980597545246078085430844281382854899631825960234801687982295709828812861346603828295920171037778485584304533959564029899824401286391226882241440521401328690546517215907865036015967188025338238435189170075664441804828391080374159650292908996830851441145992439823998794524755835918228832177634190038632270930479158787402033017383656189270688124626060352616989922053492276970128252807010356335960384320856618731128230926871753628178204675148855884247798464444301156574712847654605512539811281037514637904861944958330630449961943903759486942513948578390004798126599326396815193203482368149264844236583963577359106411551357135490709632269781220969944086415629370613024122018485306009078404648882238432603812689636401942897551023168535701704387853205427914070488865189590307715134264307785856940276490667688412413258180073526057842430435555940220309718355311891413373978337343817399857178579760344287842228587329136152667923071987495038269897957838187460275293005246300096709823863024356236779821896555101391769750707118062957266262086921244993540320107600245633725273732637142202668054467584483447000386332000217228053109964518219839353963682908523670375556263613399625953011149658783392797376045611570421315023533566672260583688182646139264821441266463261970097462303795250966435151287051914755183075861797887840222080739950001843468562638081914657032061071290611927617547335667512294975700679582145838760234017101393454734545918630904761555935149267334070559890543161077083473415014518563079025411532729606878340163086842227598686320229451036086097191639765415752576424892425192153737159809341770787530238761594563471217865966057676259122793249273807254818911420830829121586344311312088647953936851967154560820067275950902915037824245863140341437809744429301364838248517088361464514842649430419633026378876505135960439251066339417612007168139694614660845309994463625555365055368655849501722522276079465620847392198952229441213071424805850840204891548761955858378687416415950318528513236199921429535244875960015481917477929211023132983804753553434897110052345551367154953238520298335574640229628561380930185395781049182441652139087695212602990371047721867722439518579789986408985302455077233761281372040414439857502022620015123089239355120408752503101505289864930482123901279434593680421016502254077021428542060928860961127895807653734198743793377219557152209992126685430603538255197965609494367107228413345085250080474531367326114936630975926699103962845323648831997304974183554007161251919065274291794553262504893998427385065200145079873301330568914398181394387978747003778386404474922178267637589811187595154484608631692889934909497430123130093554938256346806933071841525667506304283661402605857157823258806387229490717672449654317325274374527215087226382848607915100129379166228520588874092156117133460129393745721086959843566720148134775501349229367982480190571443123966710394381430147391944169728315474964811898845805136439842330726635573717219754930487021956446846402108624700322303206295876574947098321520963647558916289922559619674213776856259594567422082096485905735572244208501362039702081593604230832279586184171644151947492696088439446408318202814097572136848080660491023101150813632473165643799063488558674383584821648625543975782391211880447171112334761587314109135640410458824352425772976409769973265276725999641967544209955842181734231220443932280450812997445331805387411381152748873851839441460541732417607390999310712794439255116714654659200208934413059488855295173024584228618268901001204641961899628550687886304785929033745336586209222108640776594675782519248417048588251444914669024682836309363456029552998647045412656635342696910405122464107410791353201218840930674313295944611836476475228509991430076713626782045084820134968126572860314408340654572973304446689045946282461860119411825065518750975895169955576129157731843347606687850479280164996093440319430522142570494901337317865864251980543129260582551142664897227663604331512165353247717172725496889678567200187054776618980176495547456283549602385315702424210403585324521742793453125632727439464489773916854832023912134974077969380287833092985181054651421524653283910595630387318244079291943425922476714829779017034205392180058476118856308326402017696213499973647188367467483046624647380817424602440889600588432238625496381472555982262070926425234490822358300509077356400771821315910051419518695810723673881225099304290896506123257924808551257486630144760239610289063261231934285849815836197374974551560415318057971480001002289731166119096457851693208052585304868408209383192817948187544111583641098248610071601733765043649958724211471965846695696912992674455315775851165316665495571989917192360468562568558804767425417835513458044100952017631256944319651124939796061945171045293407618492893765327404540342670650939970472663420052286352367356777782712988018883515086609708555933197448052165010816762801485655768682187280987224200276011502028308822245645767992317575587833135916015998430468151587927230853819548621453562320759159383825361964519572921086982347199253504183496542924179685168675786862426609466973683361424416110489868503139680391245855707509703242238031379831808254292336279887813748456282385485585758068221770358260431265550100468536952699347739448166964104103852951696402290535467360657587998883191761458500217320010243348909313802238183713806259111613752148192285548190574840249680742822070133029277619802277654397337302322600842539429666685433662882330608518282110719277615656081910895547580728465538276497183353395132927940625612211222816502907197017687459305713608678337864183566869654699379837001645086914777405347183524636573169448675956461393036242945800295750660430706242870928161110204262802271559086116449879224634034943241793600413680637160162662214544492358617789533131095762768705180852422042145277987688118445588513598545511684339565894403719577920937368366683835040227412550835989629072898578827188663666972169381596173504209771647477389074010488867369864794470076332381280231751618920459181333064156396872142036980612998746854255923190842500561822951459333908324915347848427067307246383009096561045833004719962625623203099981596335507332626855653207108492659554639160314863971487583039377530242898251880084012513649500395576635994927380549280150328993495741554717301848101242890839740923667051775254802274965494998163471893474360103562134079792702487865082471993349481348899949879333699626698612467168796366759184283396418319370325549028036160207095026303379834247057739519577743001954610525840583444041761915823111014182109421801868922918143098199292780852151369363588052119700172185338732399547309184401090013151622880476763633157216641713660985561034882605196921364279322111004879388057612673640133882800302708616968275136721614441814838841623561733546273838483955559368291621905123004894398084350747086221976018703227222287993634787768582614033565005388459934865427708949133402587737898046799941984401554700226221293435901835810138797591754994012336732445229538708380309046811591351995688262118118380887291158444411892769068333587590221583850897051183971321300148624038831878927563784358533446217493476276364278088626031075528314657949585076528733743793377654388281744421131873727190075433439365306573009232732331111839101943554202345126187622377242807734812100448738210224764151073169245813959024869368537002535690354090949989484189565264787973356535386525974844310989035456391920607591826556180062895928683946313982963835743217564824018482585520320270738817040063124458337231714674790598364388315459112893920141509610868607450209369737025872066314170878851789506579669715910352219962502129911863894481405292470186761131372367295519333453853964161371642292569615872976946038668231448968201384294400604790491573215639734771529637322409239674592462949816178284227138100686091246579616263863639925252926070161197339624427890975731928087779620456968346125013618514708050971987820333832021828667708398831682698383015672437730911436575185831314723725395911777094821561263430990971273845661565570807318177282335029060516472635263049780043161695151181318233511092542511916381805039326597095508700676654110051194292492286237430667572663949797298374779500866869993997191231822923291282082788127590574119515835102005758381181225373678390886369758083305473794021811518792375523901602545796006084865508418017103708473381052240549797233236854406643078914687581992113729312933680714785546977024523374576881970345235416769592208649460759235625442762719542494559948492560678872867421340253261919881748563807173532096742132987828408015212167425155523056561696828557099616751250447321016345885314256305310160749667274452549169317582987011630115992554498468461525895820367156447928609381079369722938830632173564266142796324742254946427756903165378202085361999572414595970465199913886569366485570818357835118477458617423851279501543436402889512583827472027244932361882661111472877680522405989137810163592533369551525813774778431869218034754341955165565978003592113156300053490171030702174446206601378745974913333685910500950792057861609916329390924914560508378928976286892298253298148251303002671859397457131072160732433101284456323955517999196421110260362304234260019938473058361470002780130719526275874574756262601570324032224932461166243722005770478890712735123730596436671659368362298032903960062647166907044051985798187077800231096711046786986702668728894125742313344998159117791623748101480137996362723511228807431521438370322642322262531271812117845390288931346061714080048212616869352734159895035248153636044026530283508085745569450720737861717813366872921516140245461294963713429963614992343254477854979948752276589339466780312341877841081534638845253115466604641626967235052630980799310084730674210595330988740297104330811470172747370399950082219082794717975777185598116416144766188914401226784402413537955629208791572680893505927791208315675824569092018464011123911860561657422119854054628006778735750038399895504515733521457911987561130006914568101053828429597845959733255431713397102801176493720288525530725311682189792848364856157879798992279659386884348143155046255354612645540916110113433690845519152166066796641923651369054552794933887975495095954452363080648456229088178831973088224237219555095948291586354985230791742530269077858359469245616259322081268578852386510180152602358823002183549815172184344640149392528435596581625759877798898310395628514876064227701888944761804521050039764849220580775425756151800517789709791304370229616596049207735886417459194372121890192408646541193877403556962524420983277066827007266074186251571362276111994063580664536288148976385097528767042494047418474652234033417208403837393995669246728750675644768069572625712345537820113126349193959407989525460742706971248629333856285079632629565678727644636995285697310853701632126747896441224347888101132019380432317142715590210802772522268662518964078526141976273000174872580526984831014859537237763613290254359969794912895024899867693877988500205570178680341707769008588018912040173416258249511188953051490420052425886887038051495814413800505754272223714819992180578609307218564609031095073368322078583970770289868404783710789920311481820326479006165424042027319056760734673344864215012798342107714161888655262033744693887484179056316502297584304435991328558705711040396526458818921098381239056414899888762338286603804869874382273833975797891916583746717800033673896633063486867686491076834969587313009111388588442551239291401834502592732275058625398442745453061366234110972298250285275319771060195275184233460492570543727802023179824803949793128944596696943420584072424821336264497397581306600516781986237853742768713646434697400543988626048002548055647066187057641442645543987790525130749793232020137181741927645112971000946265133429646273048831374716161300812885599370725522001935738985515662194714060013740090591251540223985404970495904003469781041740254223198902224938615055621513012497659484901963107135147098107395197052150631925179040071071008337238519676272517587676027541408793890167247990586298577117016097680297418586672781966770162225097540253174141092483385180375442421112869215258215324264698917946521158725307302009943420561196230655871578330684399659165293130414192077916676886989058557431716867965082477109346569376089437669919692354141506973020109310283888237333383031906252851360464316731455750060949147051929235305412547388510088348086772304163471295643158915028781040630375146170836661487763581658777363063192293164281531615009892758191559546077233249504116856525871045020565816058906050846950499626626800171096594617700756495255677853267406935075762155992758271763245513477531620781097813774385337685879010983763613583426038153411851774391932789857983579603037770670765390732616326581315166803116443542594372943099327892558456412218078019733323158403809924231127980084698124177457486794124668648589229507436408818719618994349238001117485131982588594542671702765143829090946876422254808142876541143254689551191908776349015744979966610439953091416174323682376096949812632582894291295143836721348900214818692767677658005588410384061526007709450124593692577909674819332566320001949236477793528578782347978138455016505954667474355450455807391994390358909909801364698744386768022180339917713080265472135567808790957578208222553494983054693961868373668161153317876080970264541446675749166908765056973124289540752966407218856025267500500667146144746086060569888969565415445214432273095635080894986409502689339578957881150258031813489026955625894383955851200648801118662688066816109357796083176315146607732846082757197791926669034250356741376082315027443988600430663451925913113630497539736171194611101561069192906505263318867451762134347248341828168746347277726152363929343317478612182471127453235681839755325091539737730397358001374925302019799630973348711616541715168866919808830213563122203197083949730940263522737910957172222550151113674150116969406241807898092731329188791674344627091439382480941976548155836705749945109631859981283312951316606563613119777892204937863914834761152284439179160978782273949150049657925074372277032175746022857808148923754230511393004822315708561685610291352254606818615539981876958457639292852480437955435499398482450759749681284229942820406538026753573223882744756071863272207609545484187719014729349374520379827888689220078979186350739006030813080867783824621050158709242794860456615989341425164689609022099492300861380659131089945728592809733813707334629608811724691427882310758251727638607959212134425074302976070876025643720038645343606334696090849133212565568376183199381776427981115370167812115341304550934003644459110290280407458178578826206463838603610350687887378214493447427664733353472495114963984971535538717726080763288173135838924960464554590567764510108087245158086071329897776749822254787236439462005178528801431795320408185885482502191806002913978192308560564485220464900449632392942583098148948882630607279703668855665203376310158059801335822267337181096493684512504359060098814543818245894400975435387221066753405116269575513994776093320115205095971547166657748703226245462407997547904055325289344998022705625566026688347505228375913703762324088230375470429896346981544836947148378541444847132539907835824311506115236208172179159717445380138641553545242034808102696885913875789070233832061476231244559384117996144592270276608027966890156821035517993218234819260635283856902426399722348524220559248694600762265128531829816062277064780024104196746087107916323240155341934480625795288775086179288183376519865020732202399482102842364907177237864630582796163747412122840759131252739299517433427141693364636304986872803369147475014986104965340440426695869204842272344487805430022213409910303629525177354820642490596313385932545316136072724401365707782124329606786716843489431578979000544081849166939848309895070015987180169681858372048655049637392344220110949522385871839560156110981268968775017077186723048291132264788650936416664185721394894803068053613758705908806622254334472212869677412414235610515370769752639719150802787277033111154395975740871533510701409429608702231666971213583182880026794768060788407623654647556192778681510026527174496087296888686231321607908276183790800021241921418798520907652370091306494578517802195893518825572963107532692293553651812261042657693607926412565142315021225539306482990331125574738502707904092928420292264642011951479078501064228744682386687595630518450845030638801604363239856872955420023449079179008537259097178321096291460409265413338646043993128507318958406107276586264575163479915963204621672001722635627378200858398736171572146783828425175555729750919565824003476307442246684925962390840207375629260947666897020929571981179151632563893825336024470453505894908230719296901121408778780828369020905228879541462232267954710649348982063515157895884763744783124325748106191809350427165819324552734603330654027980013590924595143161805828950117867422758598246461716439327494575953341382868823017740589492238477001071918524323427702418319090042404488669296035461396449181409880636384815080667152526226529606539684024950897628424808411180580461013671083120825853114873848149095621230785554135621848664623900988875666150691835950986018570015486337966958762418399735104195856724483018448598496239218599729946960064008659686239937586133160209494544085668204255653424814121662673636983324252363883225426794141354278744429412921108201066933602377195077201478492860338970447852729788736744679460670521847451168604188600330586057456061475738870627029046028296594334131373976474217839171745092434968737720666081848116649747190868689880456883859118342890224735849480869019886870037443579881705658948001576737606540183699274608371504535241294260026038642895833415910773742361829759626532171193853001574162901488165580515328495756456931201731738905330368715072729078899156645866259697601841526195039958775919080444230998576617956953566725032174280187296355930434078981683049135728760098069968107367194458648339052172604974169690141439288960927246378466848621233128377100142501962366459614646623817112043933371491228781233454068508209614204818183034053229445656759583731671959418052904948272167514734742831477172643662161930593952696926434406873511724475847794161279607887609915590661237033640628702886278626548706702976962191198282018166678585134570493329960737337491170050782836738194828369570241273431099462936651126527661960544800863214107855404833474455393997451470202315041718993591529666753413504802125041829238180275343634265505624880241192279072011579649343431653675975312554726499887983949309818081802475797995040856878856974579493836156535246037246307004117101116996052512662667052855692051018921783341703103750737486655816195698365659588771767823263971877221102414957427910287144998522049908528885409365020901523329021650257089800740736532364769453923341818727705539482962449883928484501062843841816434816994682747682803280596604259572502542317688273832675100848297964986595346877789663996851407186080750787043416384765980771948705267760885751596075738422215709294495530544491303488124204696037101321261649519436473750149404037854410309468370020733516162281788564229630656206202066059451164598274081735661919851421500776904552550613570893955755860719927081170923941232173899281235082745245493371649883279096954704844689868175548605105192140137369237759768155234511474905189634218640730732078348107996707010386217293858540312936890053926642765595980924286378304523604959447021242269329845919579906982556140048665403082687605846295699343678982947901740400212180072844033760906219220971276609159316703181938856178809642974326306142896172421966598407748136156840409597587444864962096882851812613143049902657246420793066679099969423895646067598943746078787511919633296116971758004693690962339197665545757854681830255636784236640900901399220818764753665882741682271937044369717626585946213833763314910995652106273971954906398795333178116755063138167209450128850766842842037758153464998500244041349088860659948950534056506182611440826450832666781756296979143014183828580825440038940205796033813906557772121724975727747705607338030256960737779437363863959659005845962507479917993182812278945387383375521619421973324445988662656571405066844806010644787368403714365593000247628124943835852768470992993742608462534439087342248557837711384677558535764944047045506316253342609909680581611486816336234627730613152959257149884483687651165104844979471029904961633057844084562928626395156949979654276867838439528050369887976935907366771196507212147535924011910948861719948256789442397274304634333144951688531562832312250512648674818054667828431478853480326749352131889851979690986498779972407664274820195076082401920268732021789714786332497322912306650042287554720869614481330394799798187464040461684711352387005586921341636902998106341958963490047851515714020887470140646341461741640807605021627753974748213769921542176099237878360151280715225971640691010907063289078266666336425829610009039770485034501311839470858493910379325028662607340220191354437819776692769723706267592700646415727270530679271380652644779399913103948550884415767303267816442298048327314644285537057551816422704385531590720063878197564580833544145136208498569447432646260538425069864561672873229337814009762420662718781619168322209295748016986540543664968432733474595782566975342309117285811157976844173176619783437072643993122814291235787397192692393253175118852432070944005920042118585707274248094264502733009028339158661391294921425244495987112809046666318068478115609885977437591811515903305534649710766135075811680012309987359800305752615524489798321648442995798163117907656106136947367892914136917514167706840673125385769416723618198132343218047021324629782259388631202462976486176119557935904573703065947511678136774051928467333724654754906268825496039157151331891111630172738497169828741055051832342794793047404597085226925072611820078532974435188493865709527572519313870401919204966628292285846177771225654466324438818199280101608203718030917667966191484000405401535222850034788909233965491803125798744989065099774341775247486630931237072494431319606663455574824970812638226584200603610961769080959864880956444971303822432543996862809231328717742154660162694829031334472257241097768817540732660184452480967307128450809767209432392223971706557970998645784145297670769799231649791248887490452984234155940952473070087739329837279843135540030953997929273759290784425643251187044030338221036632627130427722612194544556452516799417964416162136915976643526881405458724691315195450691201831185384118052177506846932786764514111877691336204103815528447
```

今回は**メルセンヌ素数#31**まで測定しました。測定に**5時間**かかりました。
**メルセンヌ素数#32**は測定に推定**9日半**かかるので
ここで打ち切りです。

#余談

ちなみにですが、今までに発見された最大の素数である
**"2<sup>77232917</sup>-1"**を**当測定環境 + lucasLehmerTestFast(高速版)**で求めるには
**"23850年"**ほどの年月が必要です。
※ちなみに他のもっと速いライブラリ**(GMP)**を使えば**"4~5年"**になります。

**素数発見**ってなんだかワクワクしますね！
以上、**高速メルセンヌ素数判定プログラム**でした。

##ソースコードのライセンス

These codes are licensed under CC0.
[![CC0](https://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg "CC0")](http://creativecommons.org/publicdomain/zero/1.0/deed.ja)

ソースコードは自由に使用してください。