r-statistics-fanの日記

統計好きの現場の臨床医の覚書のようなもの

Rで多倍長精度計算~とりあえず10000の階乗を計算してみる

多倍長精度計算パッケージ Rmpfr - 裏 RjpWiki

 

#追記2014.9.20

よく見ると自分の関数は小数点以下も出力されていて読みにくい。

裏 RjpWikiさんの所で、より良い方法の記事が出ました。


多倍長精度計算結果を見やすく出力 - 裏 RjpWiki

 

裏 RjpWikiを参考にして小数点対応版を作りました

多倍長出力をキレイに桁を揃えて出力する(改良版 - r-statistics-fanの日記

 

10000の階乗を分かりやすい出力に変更

#追記終了

 

 

裏 RjpWikiさんの所で多倍長精度のパッケージの存在を知った。

これを使えば、いちいち繰り上がり処理とかを実装しなくても

大きな数を扱える。これは便利。

メモ代わりに10000の階乗を計算して記録しておく。

追記:

驚異のアニヲタ社会復帰への道 さんの助けを得て、多倍長精度の出力を

区切り良く出力できるようにした。

mpfrを文字列にするだけで30分以上かかってしまった。
S4オブジェクトは難しい。文字列にするだけで苦労するとは。

 

library(Rmpfr)
## Loading C code of R package 'Rmpfr': GMP using 64 bits per limb
one <- mpfr(1,200000)
x <- 10000
fact.x <- Reduce("*", c(one, 1:x))

このままだと、超横長の出力になる。多倍長精度のmpfrを
うまく桁区切りで出力する。

print.mpfr <- function(mpfr, n=100, m=10){
num <- formatMpfr(mpfr)

num1 <- strsplit(as.character(num), "")[[1]]

num2 <- vector("list", (length(num1) %/% n)+1)
num2[[1]] <- num1[1 :( (length(num1) %% n) + is.numeric(n*( (length(num1) %% n)==0)))]
if (length(num1) > n){
for(j in 2:( (length(num1) %/% n)+1)){
      num2[[j]] <- num1[(length(num1) - n * ( (length(num1) %/% n) - j + 1) - n + 1):
                              (length(num1) - n * ( (length(num1) %/% n) - j + 1))]
}}


f <- function(vec){
      s1 <- seq(1, length(vec), m)
      s2 <- c(tail(s1-1, -1), length(vec))
      paste(mapply(function(i) paste(vec[s1[i]:s2[i]], collapse=""), seq(s1)), collapse=" ")
}

res <- lapply(num2, f)
res2 <- unlist(res)

print1 <- function(x){
      cat(paste(x, sep="", collapse = ""),"\n")
}

for(i in 1:length(res)){
print1(res[[i]])
}
}

print.mpfr(fact.x, n=50, 10)

__________ __________ __________ __________ 2846259680 
9170545189 0641321211 9868890148 0514017027 9923079417
9994274411 3400037644 4377299078 6757784775 8158840621
4231752883 0042339940 1535187390 5242116138 2716174819
8241998275 9241828925 9787898124 2531205946 5996259867
0656016157 2036032397 9263287367 1705574197 5962099479
7203461536 9811989709 2611277500 4841988454 1047554464
2442136573 3030767036 2882580354 8967461117 0973695786
0367019107 1512730587 2810411586 4056128116 5385325968
4258259955 8468814643 0425589836 6493170592 5171720427
6597407446 1334000541 9405246230 3436869154 0594040662
2782824837 1512038322 1786446271 8382292389 9638992827
2218797024 5938769380 3094627332 2925705554 5969002787
5282242544 3480211275 5901916942 5429028916 9072190970
8369053987 3747452483 3728995218 0236328274 1217040268
0867692104 5155584056 7172555372 0158521328 2903427998
9818449313 6106403814 8930449962 1599999359 6708929801
9033699848 4404665419 2362584249 4716317896 1192041233
1082686510 7135451684 5540936033 0096072103 4694437798
2349430780 6260694223 0268188522 7592057029 2308431261
8849760656 0742586279 4488271559 5683153344 0534425446
6484168945 8042570946 1673613187 6052349822 8632645292
1529423479 8706033442 9073715868 8499178932 5806914831
6885425195 6006172372 6363239744 2078692464 2956012306
2887201226 5295296409 1508301336 6309827338 0635397290
1506581822 5742954758 9439976511 3865541208 1257886837
0423920876 4484761569 0012648892 7159070630 6409661628
0387840444 8519164379 0807186112 3706221334 1541506599
1843875961 0239267132 7654698616 3657706626 4386380298
4805195276 9536195259 2409309086 1447190739 0768585755
9347869817 2073437209 3104825475 6285677776 9408156407
4962275254 9933841128 0928963751 6990219870 4924056175
3178634693 9798024619 7370790418 6832993101 6554150742
3083931768 7836692369 4849025999 6077296842 9397742753
6263119825 4166815318 9176323483 9190821000 1471789321
8422780513 5181734921 9011462468 7576983537 3441456013
1226152213 9117875968 8367364087 2079370029 9203827919
8038702372 0780391403 1236899760 8152840306 0511167094
8472222487 0389199993 4420713958 3698306396 2232079115
6240442508 0891991431 9837120445 5983440475 5675948921
2101498152 4545435942 8541439084 3564419984 2248554785
3216362403 0098442855 3318292531 5420655123 7079705816
3934602962 4769701038 8742206441 5366267337 1542870078
9122749340 6843364428 8984710084 0641600093 6239352612
4803797529 3343928764 3983163903 1277645072 2479267851
7008266695 9838952615 0759007349 2151975926 5919270887
3202594066 3821188019 8885474826 6048342256 4577057439
7312225970 0671936061 7635135795 2982179429 0797705327
2832675014 8802444352 8681645026 1656628375 4651900617
1873442260 4389192985 0607151539 0031106684 7273601358
1670643786 1756757439 1843764796 5813610059 9638689552
3346487817 4614324357 3224864326 7984819814 5843270303
5895508420 5347884933 6458248259 2033288089 0257823882
3326577020 5248970937 0472102142 4841334246 5268206806
7323142144 8385407418 2139621846 8701083595 8294696523
5632764870 4757183516 1687923506 8366271743 7119157233
6114307012 1120767608 6978515597 2184648598 5918643641
7168508996 2551682091 0793570231 1185181747 7501080462
2585521314 7648974906 6075287708 2897667514 9510096823
2968973200 0622392888 0566580361 4031128546 5929084078
0339749006 6495320587 3164948093 8838161986 5885082738
2468034897 8647571166 7989042356 8018303504 1338757319
7263089790 9435710687 7973016339 1808786847 4943633533
8933735869 0640584841 7828065196 2758264344 2925805842
2212947649 4029486226 7076183298 8229004072 3904037331
6820741741 3251656688 4430793394 4701920890 5620788387
5853425128 2095735930 7018197708 3401638176 3827856253
9516825426 6446149410 4471157953 3262372815 4687940804
2371858742 3026200264 2218226941 8862621210 7297776657
4010183761 8228013685 7586442185 8630115398 4371229910
7010094061 9294132232 0277319395 9467006713 6953770978
9777811828 8242442920 8648161341 7956201747 1831609687
6610431404 9795819823 6445807368 2094040222 1118153005
1433387076 6070631496 1610777111 7448059552 7643483333
8574404021 2757031851 5272983774 3592187855 8552795591
0286644579 1736200722 1858143309 9772947789 2372071794
2857756271 3009239823 9792195758 1197264742 6428782666
8235391568 7857271620 1461922442 6626670840 0765665625
8071094743 9874011077 2811669918 8062687266 2656558334
5665007890 3090506560 7463307802 7158530817 6912237728
1351058452 7326591626 2196476205 7143488021 5630815259
0053437211 4100030303 9242866457 2073284734 8171203416
8186328968 8650482873 6793339844 3971236735 0845273401
9630942769 7652684170 1749907569 4798275782 5835229994
3156333221 0743913155 0124459005 3247026803 1291239229
7979030417 5878233986 2237353505 4642646913 5025039510
0923928658 5108682088 0706627347 3320035499 5720397086
4880660409 2985460700 6339409885 8363498654 6613672788
0748764700 7024587901 1804651829 6111277090 6090161520
2211146154 3158317669 9570609746 1808535939 0400067892
8785488278 5093863735 3703904049 4126846189 9127287156
2655001270 8330399502 5787993170 5431882752 6592258149
4895074663 9976007316 9273108317 3588305661 2614782997
6631880700 6304463242 9112260691 9312788815 6622159152
3270457695 8675128219 9093894268 6601963904 4897189185
9747292531 0322480210 5438410443 2582847283 0584297804
1624051081 1032691400 1900568784 3963415026 9652104892
0272140232 1602348985 8882737142 8695339681 7551062874
7090747371 8188014223 4872484985 5819843909 4651708364
3689943061 8965024328 8353279667 1901845276 2055108570
7626204244 5096233232 0474470783 1190434499 3514426255
0170177101 7379551124 7461594717 3186270156 5571266295
8551250777 1173833820 8419705893 3673237244 5328045653
7178514960 3088025802 8406784780 9414641838 6592266528
0686797884 3250660537 9430462502 8710510492 9347267471
2674998926 3462735816 7146935060 4951103407 5540465817
0393481046 7584856259 6776795976 8299409334 0263872693
7836532091 2287718077 4511526226 4254877183 5461108886
3608432728 0622777664 3097283879 0567286180 3604863346
4893371439 4152502594 5965250152 0959536157 9771355957
9496572977 5650902694 4280884797 6127666484 7003619648
9060437619 3469427044 4070215317 9435838310 5140491546
2608728486 6787505416 7414673164 8999356381 3128669314
2761686353 7305634586 6269578945 6827506581 0235950814
8887789550 7393936534 1937365700 8483185044 7568221544
4067599203 1380770735 3997803633 9267334549 5492966687
5992253089 3898086430 6065329617 9316402961 2492673080
6380318739 1259615113 1890359351 2664808185 6836677028
6537742390 7465823909 1095551717 9770580797 7892897524
9023073780 1753142680 3639142447 2025772889 1784950078
1178893366 2975043680 4214668197 8242729806 9757939174
2229456683 1858156768 1628879787 0624531246 6517276227
5829549342 1483658868 9192995874 0209569600 0243560305
2898298663 8689207699 2834030549 7102665143 2230612523
1915131843 8769038237 0620539920 6933943716 8804664297
1147674356 4486375026 8476981488 5310535406 3328845062
0121733026 3067648132 2931561043 5519417610 5071244902
4873277273 1120919458 6513749319 0965162497 6916575538
1219856643 2207978666 3003989386 6023860735 7858114394
7158728008 9337416503 3792965832 6184360731 3332752602
3605115524 2272284472 5146386326 9369763762 5101967143
8012569122 7784428426 9994408291 5221590469 4437282498
6580852051 8657629299 2775508833 1286726384 1871327778
0874446643 8753526447 3356244113 9447628780 9746506839
5298210817 4967958836 4522733446 9487379347 1790710064
9782364660 1668057203 4297929207 4468223228 4866583952
2211446859 5728584038 6337727803 0227591530 4978658739
1951365024 6274195899 0883743873 3159428737 2029770620
2071202130 3857217593 3211162413 3304227737 4241635355
3587977065 3096476858 8607730143 2778290328 8947958184
0437885856 7772932094 4767786693 5753746004 8142376741
1941826716 3687048105 6911156215 6143575162 9052735122
4350080604 6536689174 5819654948 2608612260 7502930627
6147881326 8955280736 1490225258 1968281505 1033318132
1296596649 5815903042 1238775645 9909732967 2806668384
9166257949 7479229053 6184556374 1034791430 7715611686
5048429249 0281102992 5296787352 9876782926 9040788778
4802624792 2275073594 8405817439 0862518779 4689004594
2060168605 1427722444 8627246991 1146200149 8806627235
3883780938 0628544384 7630532350 7013202802 9488392008
1321354464 5005613498 7017834271 1061581772 8981929065
6498688081 0455622337 0306725425 1277277330 2834984335
9577257595 6224703707 7933871465 9303308862 9699440318
3326657975 1467650271 7346298883 7773978482 1870071802
6741265997 1587280354 4047843247 8674907127 9216728985
2358848694 3546692255 1013376063 7791516459 7254257116
9684773399 5115899834 9081888281 2639844005 0554621006
6988792614 5582145653 1969690982 7253934515 7604086134
7625877816 5867294410 7753588241 6231577908 2538054746
9335405824 6971767432 4523451498 4830271703 9654388773
7637358191 7365824542 7334749042 4262946011 2998819165
6371384711 1849156915 0547681404 1174980145 4265712394
2044254410 2807580600 1388198650 6137592885 3903892264
4322947990 2864828400 9959867596 3580999112 6953676015
2717308685 2756572147 5835071222 9829652956 4917835071
7508357413 6228254505 5620270969 4174767992 5922977488
8627411314 5876761475 3145689532 8093117052 6964864101
8740767329 6986649236 4373825654 7502281647 1926815559
8831966298 4830777666 6840622314 3158843849 1051905828
1816740764 4630333001 1971029303 6455866594 6518690744
7525083784 1987622990 4159117936 8279976065 4186088721
6266548864 9234439103 0923256910 6337759697 3905178112
2764668486 7917360494 0439370333 9351900609 3872683972
9924647848 3727274770 9774666935 9978485712 0156789000
2419472692 2097498412 7323147401 5499809203 8145982141
6481176357 1478015542 3159966783 8534854486 4069364105
5691353133 5231184053 5813489409 3819182189 8694825383
9609899428 2202759933 9635206217 7053435720 7339625057
4216769465 1016084956 0143930324 4304271576 0995273086
8460920442 2226103154 2299844448 0211009816 1333824827
3752189987 3820531516 4927134498 1059501599 7480057159
1912202154 4877487501 0347324619 0633941303 0308923994
1198500622 5902184164 4099881732 1432442210 8554248620
8962502606 0439818018 9026317781 1466174549 9977144066
5232863846 3638470016 5561815386 1098188111 1817341913
0550502486 0345856755 5856375117 2977429932 9074944236
5796683327 0091836733 8977347901 7592488856 6037995277
1540569083 0173117238 9414032615 9612292912 2251910959
4874380567 3381278538 6164918427 8693841755 6898047100
8598683720 3361517515 8097022566 2752001609 5619222992
5401759878 5220385459 1377178397 6389811198 4858032910
4875166692 1195104514 8966777615 9824946872 7420663437
5932078526 1892268728 5527671324 8832677941 5291283916
5407968344 1902390948 0367668870 7838011367 0427539713
9620142478 4935196735 3014444040 3782352667 4437556740
8830252257 4527380620 9980451233 1881027290 1204299798
9005423126 2179681352 3775804116 2511459175 9932791341
7650729282 6762236897 2919605282 8967522352 1425234217
2478418693 1739746041 1877634604 6256371353 0980159061
7736758715 3368039585 5905482736 1876112151 3846734328
8432509004 5645358186 6819051087 3179134621 5730339540
5809871720 1384437709 9279532797 6755310993 8136584040
3556795731 8941419765 1143632552 6270639743 1465263481
2003272009 6755667701 9262425850 5777061789 3798231096
9867884485 4665952732 7061670308 9182772064 3255191939
3673591346 0377570831 9318084592 9565158875 2445976017
2945572050 5595085929 1755065101 1566507552 1635142318
1535481768 8419603208 5050871496 2704940176 8418398058
2594038182 5939864612 6027595424 7433376226 2562871539
1606902509 8985070798 6606217322 0016359393 8611475394
5614066356 7571852661 7031471453 5167530074 9921386520
7768523824 8846006237 3589660805 4951652406 4805472958
6991869435 8811197833 6801414880 7832121345 7152360124
0659222085 0891295690 7835370576 7346716678 6378090881
1283450395 7848122121 0111725071 8383359083 8861875746
6120131729 8217131072 9447376562 6517231069 4884425498
3695141473 8389247774 2320940207 8312008072 3532628805
3906266018 1860504249 3878867787 2495503255 4242842265
9627105069 2646071767 4675023378 0567189345 0110737377
0341193461 1337403386 5364675136 7336613947 3155021145
7104671161 4452533248 5019790108 3431641989 9984140450
4490113016 3759520675 7155675094 8524358026 9104077637
2109986716 2425479538 5312852889 9309565707 2921867352
3216666097 8749896353 6261052982 1472569482 7999962208
2577584098 8458484250 3911894476 0872968518 4983976367
9182422665 7116716658 0157914500 8116571922 0023375976
5317495922 3978849828 1470550619 0689275625 2104621856
6130580025 5607974609 7267150333 2703231002 5274640428
7555565468 8376583880 2543227403 5074316842 7862063769
7054791726 4843781744 4636152057 0933228587 2843156907
5625556930 5558818822 6035900067 3933995250 4379887470
9350792761 8111627630 9771257983 9759965266 1212031749
5882059435 7548838622 8250840140 8885720583 9924009712
1921254807 4097752974 2787759125 6602644348 2713647231
8491251808 6627870862 6116699989 6348124058 0368479458
7364820124 6536632288 8901163657 2270887757 7361520034
5010226889 0189101673 5720586614 1001172366 4762657835
3963642978 1901164705 6170279631 9223322942 2873930923
3330748258 9376261989 9759653008 4135383241 1258996396
2944512908 2802023225 4989366275 0649953083 8925632246
7946959606 6904690668 6292645006 2197401217 8289987297
9704859021 7750600928 9332895727 2392019589 9944719451
4736085077 0400725717 4393181484 6190940626 9545285030
5263410005 6502222615 2309364882 8871220464 5426770057
7148994335 1471625042 5236517371 0266068647 2534581201
8668327395 3682547456 5365535975 4668578870 0056988360
2866864507 4025699308 7483441094 0860863037 0790829524
0576731684 9418558104 8247530475 8923392801 5713028241
0623499994 5932390521 4098565595 6566134600 3396150515
1647588527 4221473251 7999548977 9928495227 4602985566
6700811871 2008561550 1645740048 4170210303 0389963392
5333746655 6817824410 7374093369 1929410463 2307731994
7598263073 8349960077 0372410446 2854146487 0411627389
5649834555 1621656851 1455138382 2047005483 9966717062
4646756610 1291382048 9091211172 2938624425 3158913066
9874620455 8724480605 2829378148 3026221645 4228042175
7760762365 4598282230 7081550346 9404938317 7550533050
9469899947 6119419231 2807218072 1696437843 3313606760
6769651871 3839433877 2485493689 0618457005 7204369666
6465080734 4958144959 6630624669 8679832872 5863000642
1522021017 1813917325 2751736722 6262145494 5468506006
3346927138 3831171584 9753092643 2524869602 2005909980
2663765386 2254632651 6841496330 6369548086 5511012567
5771789061 6694758344 0434862184 8536959160 2172030456
1834975241 6203992644 1331651884 7686068306 4200485855
7924473340 2901425888 7640371251 8642229016 3336915850
6327372719 9596362912 7833447862 1888787100 9533753551
0546889802 3637826371 4926913289 5643394408 9947012145
2134572117 7156575914 5173489519 5016800621 3539271754
1984387616 3543479806 9208866662 2709951237 1706241924
9142825764 5312576993 9735341673 0468645851 8197966823
2015693792 6849269999 8399241357 1941496882 2737040228
2080517180 8003400480 6152617920 1397894518 6295290558
4407037383 0053355242 1153903385 1858293667 7919061011
6306233673 1444192028 9385720185 5569596330 8336154502
9042482230 9297087124 7880020173 8307206048 2680156675
3975937899 3179351579 9958929562 1563073384 1629459990
0276730832 8277165950 6421796652 3190439250 5432267537
3181175531 5476780739 4703389311 8510729772 4318378972
6749574557 7818334549 5942317353 5582910469 6731539127
5975687281 8616911610 8315633723 2639968881 4905439432
6119718227 4996791176 6285534018 6019831580 9629981791
1072088049 9229201606 2059067271 2735994618 7163494577
4995805337 9471871054 5645257939 6024210259 1364155283
9839520177 3012712514 8920510617 0822800833 9985665786
6469207371 1426968230 1770416324 8294794095 5869469908
9379165191 0063051853 5210234518 9798127619 1430618643
6270308197 7124992751 0567329094 8120205774 7100687703
3797089342 2920718390 3744167503 4938188363 4222928494
6790660285 6742932516 4256904436 3473087656 7970565956
7728529108 1242733154 4065801998 0271157912 6254172797
4528625748 6592193329 3805915239 5247355188 8711986039
1319654287 5762901905 0396408356 0246277534 3144091556
4218172945 9941596061 9796226332 4271586342 5977947348
6820748020 2153873472 9707999753 3329877855 3105382016
2169791880 3807530063 3435076614 7737135939 3626519052
2224252814 1084747045 2956886477 5791350216 0922040348
4491499507 7874310718 9655725492 6512826934 8951579507
5486172341 3946103651 7661675032 9948642244 0396595118
8226498131 5925080185 1263866353 0862222349 1094629059
3178294081 9564048470 2456538305 4320565069 2442267186
3255307640 7618720867 8039171135 6363501269 5250912910
2049604282 3232628996 5027589510 5284436817 7415730941
8748944280 6542756143 0975828127 6981249369 9331302894
6670560414 0843089422 3114091272 2238148470 3643410196
3041363073 6771060038 1595908297 4641011442 1358321042
5743583502 2073717321 9745089035 5731873504 4582723877
0728271406 1629979196 2935722410 4477155051 6525358675
4410939507 9218369015 2611384403 8268005415 0924346511
7114364778 9944455399 3653667727 5895657139 8750554299
0824585609 5100369346 6310067371 4708029927 6569334355
0092718985 4050109917 4749799915 5439203190 8961967615
4446860481 7540069568 9471463928 2453838070 1044418104
5506171305 1605843558 1752103233 8465829201 0710300611
2428340745 8607006060 1948305513 6486702102 0364708470
8074227043 7189370696 5688795617 9287130452 2451684202
7402021966 4156052803 3506129355 8739079393 5244040925
8424838060 7177444609 9640352218 9102296190 9032569042
3813744924 9490689231 4330884224 3996313963 9154585406
5286326468 8075811487 4837140828 4176455226 3863135202
6489401626 2494802388 5682315991 0295262033 7126449279
9019382111 3451844638 7544516391 2393779741 9057664991
1764237637 7222828023 1846573805 0121277809 6803156914
7726491025 7503508758 7922481102 2354452441 0872448565
7007551871 3214659209 3548504552 8291707495 9677540445
0779494836 3717560623 2692575741 2813110241 9103733380
8043432531 0884694831 5557294022 6539497291 3817581338
6194570577 9956180875 5951413644 9076131096 1715592837
6585840036 4893740768 2225752393 5988731081 6896676882
8740383719 2827690431 5141069976 7830381908 5690713091
9313408460 1951114748 2766350724 6765349220 4005862667
7632935516 6319396224 9897991270 8004465982 2648991252
2681312430 0528104995 0585956765 2712359149 4442612554
4376186450 2920288135 8582871789 5772241163 8081516183
1603129728 7969874801 3982862164 5629196153 0963583373
1361972477 3332353025 4665711969 0261123738 0629030242
9042757945 4903002266 0847446513 1617416919 1685174646
4945459696 0053308852 5279208347 2495235473 1106741090
9922354105 5506299687 6421539512 4935598631 1346661725
1168907856 3332893556 9150449485 1891134883 0187636510
0638502565 9164330219 2856559626 3914382895 0683248387
2716561656 0111531517 0552229557 6594497245 4788815532
3164174532 6716797886 1141165355 5975883319 7963807096
2998880767 3036169403 1773644814 0427867784 2512324499
7469342134 8217179595 1906982046 0299717200 1174857303
8897192055 9741474245 3011135869 7662566077 7097022563
3261701108 4637847955 5525850457 8058879440 7560649741
2797453091 8418405207 5585264622 0882148364 6754652237
6092107875 3919045468 4852349759 9860449433 2282807312
0679922402 4775075141 0589077462 7334319091 2554513522
2532927591 3842047384 6030561631 5423655293 5312278389
7594465157 8733734346 3172280001 0313804254 8140402209
0580405056 0038609374 0343506886 3081434683 8489007089
3856505002 7569059678 0694046984 3518453513 4141031615
1336830437 1478664292 5389717165 9786290107 2840075893
9700388317 7426481637 2511327736 9926827709 4653425835
9611188195 5092462062 1539781211 9724476262 3771534452
0480698190 8252494396 3962251113 8311774289 7853582559
0832490480 4975160471 0425756975 3442551515 7798156003
7084723060 3484753977 5136883904 0431601748 6248871339
3118185230 2942542567 6202485688 3939708367 4878845378
9172574145 1559179190 3539853507 7200900594 9793529394
5963121344 5503368260 6900598287 1772353337 5221941915
5473037420 6234326289 2968397015 0588921911 1204924986
4792053410 8723491154 3098718216 0055762209 0757323046
2610659774 4947658346 3130255986 3631502995 9672352476
9439754625 3020678819 3304372284 8002093053 5415564066
4838569378 1446031386 9756345920 0233462606 9959555134
8475414789 1180830329 8164215874 5292295267 8937925647
7520290526 7534935667 3744293182 6733745716 4246540774
8267901046 7787590854 0813053144 7176455869 8941696689
4043648995 2465247443 9883495838 7120629648 5413357553
8134195004 9874381336 9062703973 8745866042 9687159582
0715766599 8266073170 0562446554 1763024501 3491595672
8894261974 6144496908 6716558597 8272922870 2723774835
0973629010 1913041781 2735773037 7818040815 8913600520
7315806941 0343050031 8434934236 0269244733 0600138611
1978177447 2669608928 3210525431 1649603342 0102032603
8636725328 8964833340 5862204843 6165753620 0146840547
6649666473 5669795729 5339480913 8263703324 2209308393
6695498068 8240491622 0631479114 9464204250 0022450413
4255585619 3744290525 7252436320 0544874415 2430730521
5070491020 4340765724 7686509575 1174125413 7295316445
2176557723 5348601821 5668333525 2053283000 0108344008
7622668438 1702323560 5645158256 9541773591 9781364997
5559601912 5677449427 1798636004 5847405209 2900893973
1527602430 4951653864 4313881478 7697754147 8757432610
1598797097 5885562580 6766197973 0984724607 6948482112
7948427976 5366070550 5163910441 5022554420 3297212920
3300935335 6687294595 9123279658 8637648689 4188433640
5484940095 7496579165 7687213927 3301535550 9786511476
7947399690 6231848783 7751546261 3823651665 9563372093
4570820830 1840482797 0057280714 3292572757 7436229587
0473616416 0973181724 1594204270 3660664040 8974024552
1530725227 3886372418 5964645522 3673260411 1645984640
2001021692 0823315155 3888210715 2719126787 6531795071
9082045251 0044782129 1318544054 8144941518 6711420710
3693891129 1250127508 5346633771 7749376016 5434546963
9004271112 9829255096 8304206657 2536427947 2200020835
3138837087 8164995718 9717629338 7948542712 7688265200
3766325924 5616148687 4489747151 9366219275 6658524621
1445740701 0675380427 5641844408 3480520383 8265052601
6985840600 8478842242 1887856927 8977518104 4280547442
7229455167 4203356864 6060997797 3124950433 3214252050
5367579049 9520783597 6504153790 0113257953 6040655172
6548790221 7359544415 1139429231 6489506631 7781303905
7462082449 1719213118 6412963370 4661406456 9001789423
5673877552 3130952785 9127745332 4185544248 4484493664
2107313488 1918064018 9222317302 1566458134 7318644999
7905781662 0914698707 1803938888 5781280740 2263636022
9411435486 9871402143 5720559477 3089280865 3678920201
9351026053 6156792448 3276749476 1178583160 7186571031
0842200560 2595451151 9139130911 9544447844 3610327418
7610233884 3391687589 2334237908 5984196826 6525610628
7512375723 1849147495 1945985728 8979349817 9176182265
2480408237 1281097907 7263886428 6067917082 2885758527
0347083971 4561619926 2478447946 9279499684 5945632382
7022973641 7350343078 3194115698 2478200132 9085120287
8474805860 1889600459 0174597405 5630732714 4876790852
8886797880 9970695240 6810066256 1144001498 3413580889
7372468440 6494885707 4167687916 4132242053 7365406733
0186392497 9109154747 8595916386 5597507090 5811759248
9950221479 9250945635 5825143158 1446406013 4283490422
7983579396 5925898520 0763845646 6816407326 8192834600
7767285876 2849000688 7456463927 4964415904 0340336723
3781449159 7032941787 2941550610 5412951540 0159393851
6639293256 7742955754 9480046658 2735796539 9094023354
3644649376 8272725418 7362754753 2976808190 3253361410
8643308423 7771738995 2215367630 9530204590 2438694632
7028952939 9448301357 7589081214 8845584938 1987450592
0914067209 5224690962 6307694175 3340983698 8593637003
1497372897 7996360018 6265001749 2929008793 1189997822
9637123066 4229799616 3582572600 1122889836 4765141804
5975770042 1208339493 6465964733 6464289044 4993253962
2709190737 3705772051 3228159578 6322759191 2786054297
8629531886 1555980472 8160710864 1328035854 0016005557
5686855791 7859778991 9790265659 2621283007 2253514015
2597356930 0729015392 2111168685 0474040217 2174442051
7380002513 6100049453 4119324331 6683442431 2596309881
2396962202 3588583955 8783168519 4833126653 5773532443
7993568321 5269177042 2490345745 3485891381 2582681366
9089294768 0905263556 0638119661 3060639369 3841181771
3545929884 3172329122 3626245886 8394202889 9816935611
6986542988 4776513118 2276625267 3997880881 6010470651
5423350156 7135374481 7086234314 6625311902 9104015226
2927104099 2850724188 4332900727 7794754111 6375521765
6358931632 6636049381 2184018375 1281888477 1168975479
4837676640 8484275362 3074019542 1832179854 9626066659
0347925816 3423926709 4783990706 2923166535 0372850197
5132481380 3837070894 6389254708 8703908572 3581006130
6286466647 1000610435 2115778926 6134322146 5531141188
2596942926 2845221090 2668841497 5763341554 9211355812
5461655807 8273470115 8140060083 4576213313 0389987843
2706537199 5670957084 7385786092 6491888583 7873923916
5554263577 3012922436 4160406255 1736892335 6365688543
6585164620 7821875741 7243645258 1414348763 2761341752
7073767549 2227628778 2264765154 3153415857 1377352273
0335403376 3642042580 3425726474 9686217823 6669513534
1067737842 1131371131 9873732228 9180527506 2812277716
4124944124 0120712595 4319991746 5747458925 8261371282
5555535080 4041439445 5729599455 4635608487 2513394629
3635894083 2098964801 6195831304 2972096479 4128539388
9962653689 2826380767 7168759588 5022164645 8243094016
5009688797 3661577335 6031683671 0386895228 2709415095
4522274400 2735499253 6702147159 9405654481 3842186380
1287999008 2093357632 0736369405 9914242637 1829400061
3741900579 5130962985 4533074819 7802568301 0896728738
0223482048 8862973130 3696898826 4065790478 1562389778
4853650256 9106423179 5736025330 9087632717 8491118974
8432246868 0863403839 6417612760 5788646574 4722848249
3268744306 2551220506 9551684646 6947718368 1911432873
5448158363 5054814641 1099960143 3905957997 6629064688
1295025039 1509236330 1107607063 2863317393 3781496933
8024758003 5052789782 7557509286 0403942050 6342939327
0646361610 3182287924 8152679306 8627492372 7563185222
5654266008 5568494977 2028590915 0930495425 9674736483
3143723634 9555448901 5986684083 6217691355 9656039519
6704253688 6348236958 7129462524 7590317768 1318497758
8276576740 4825581365 0210364958 5505703259 2199576753
3426422378 3723586058 5094035839 7710347667 0644788640
8311096503 0256521560 7464019652 7169997323 7346523717
3456595514 5594930981 6664400621 1599349133 1801351505
2865184217 8828026343 3259347558 5076116869 7709125580
0561856837 1054085608 1249519403 1480646187 1940257766
3285267019 6983875675 6152469675 9028106864 8968692933
1595435209 7687527137 2016161609 3117425019 9709289684
9400346962 4232568841 0665113304 3774122561 7625865894
1236728171 1455264238 9451263171 7834790276 9211714528
8735295501 9336759218 9080060486 3373778672 8180610254
7825704367 8844950351 8925787499 8366947859 0861297554
3084122677 0609543476 1213371743 3156783790 1620123372
3702333831 6414706428 5921859776 1015823272 1997915062
8718681867 5098166553 7745013020 8803339043 5363977026
3363809098 5264945326 2814655806 5546504823 4864294953
9061325740 0496912888 3405182229 3364447668 3855037967
9758096199 8357580702 7759535968 7882261946 5961222304
4549275600 2749551685 8354258229 5336042834 4263184780
6882539545 0746691877 8977654060 3843251284 3812811316
8562046086 1728940822 9658626174 4207669202 9742793008
8129519854 6787135486 2323661041 3216581279 2671515459
6159435259 3456757445 9923078892 0551954008 2316409719
5912500254 5523750310 6735639748 8355424804 4968138303
0671851931 4913357892 0212360530 8199952020 5845034234
9993215096 2634977812 4566583046 8058182456 3524814625
8493319261 9540688481 8446445248 4294860630 1616947666
3242625231 4763223711 0969536948 3824482316 4103962245
0767540561 4287468267 8357237048 9560699065 2792688455
8445120466 5485337853 4026646645 0423396384 8825771987
4953611300 4942155937 3554521192 6186721478 2654168856
0409492829 0056616883 8076376566 9051074089 2510549165
2229688786 7696863165 2514917701 4999000666 3734454612
0262780701 9256987062 2554092894 5194718778 0043061300
2182828742 5867048748 4808269485 7344477824 4078734102
7108248702 6952383080 4910960482 0139012940 2463124480
0159336670 2126583176 7787975296 5963472576 8943265404
3588926729 3950687860 8306262662 6328739208 7327302547
9100999321 1338897780 7814336728 7914487683 7368646774
8528777737 4035474728 7164421776 7820712964 5062708809
7863792814 4071192505 1411480049 0705560809 7229299792
4414710628 5224702987 0699869227 6763417735 1325860290
8903875707 4543680778 7642238533 3700692089 6163510092
3358730398 6543906071 8809525575 5338036472 5895007306
7721225280 7817947105 6481171378 5574510576 9104432292
5429024149 4335883960 9367932136 1696954251 2997310310
3280443695 4501929843 8208423831 2126582574 0594509426
9427773071 2480217691 5781835720 0871705387 7325601798
7133005505 9113778238 4179164028 0841409623 8208476373
9301393077 8428554545 2223675598 2466625060 8754284876
1041456613 6222764240 5914304455 5808563181 8093523040
7793891614 9021162924 0051507491 4068443203 2303656099
5487862099 9194306564 4553325471 3555736531 8516011700
3215506907 8771675206 2881527885 8971494103 2098698408
3048966524 3510305024 4467993177 9147659103 4289491290
5412036160 1695671222 1408063694 0594030455 2186212879
9330928562 3102241844 6365289097 4446401519 8662318388
1962444822 5907835859 1404368619 3019041458 9626938789
0703498216 9868696934 4480862139 9053459179 2826654304
7982072196 3413475564 6525483143 7711566784 5907779719
6510772468 0002935815 4626764631 0224279007 3136313525
2206706295 1125935874 4731341864 9249728278 4796644585
4489629329 0526205806 5248588707 0208793891 3447608334
4653170939 2424082493 2800891573 1319541348 3118209277
5248688054 8733943315 8675626661 2217935505 1190609992
9113794456 3499562739 1898459029 0217131557 0609626788
1673302940 1984642373 9044509802 8030948975 9812592520
5585097353 7436556825 7803136819 0200715167 5693827281
8188245875 4171072118 0806556448 0391225045 3708942269
5358382192 5350756928 3409563985 9265599740 3913167092
9004399627 5976830375 2175033608 7902829567 3068862263
0777297335 3385368266 8734519035 7097096873 2232373830
0494090123 2392743187 5904652632 7095178406 2672648288
9364689659 3219169521 1063617297 5707437614 8061601331
1049116922 7131860940 4145014842 8664236347 1698289241
8180484365 2305388645 5980983927 3836490685 4808230142
6780314393 7440431807 8226787794 9400620648 9151248952
5165430056 3444837504 6751754207 0433133724 8687063323
7561645232 3604819320 2437759689 0914783372 1795536769
9260323571 5185513391 0984027390 6375328070 2313301755
7542693962 0262942391 0945323537 9101259489 6494181256
3672992967 0842506675 9980345627 3455598559 6285122814
1458255602 4841783305 6452405084 5006598875 5987518601
3358606249 3278448777 2006842296 5919455165 3956298296
0591610046 5789072148 4205486183 0418175604 5598151680
8803178308 0261445994 4446779180 1243214640 0983610678
6834129748 7259672925 8786806223 0801158220 2628901436
4459002301 6458236667 0926557126 4559925790 6223047452
3562557511 1770791512 0027893809 7577546854 6121017307
5227992414 0702630813 7792971909 4614131458 0208108773
8121624539 8587696973 7142588183 6152605069 3809269177
1208732191 5005831977 1133227935 7238507194 0612761291
8725720994 0493025027 7748156614 0213274347 4388196641
3330052634 2290829064 0092794492 4808556131 1834401618
0480135703 2507836323 9389215676 4315962044 2612809700
9441077761 3063890907 1294456394 0566015592 4602545420
4771186140 4201552333 7127050137 7121034570 0095780093
8926532938 5720478576 5087771496 6340300356 2380595757
1916093821 7131222281 0465858388 9435071764 3193997301
2661591423 8371702844 0012039948 5880996231 8594724748
5877658435 5077006934 0992203403 7877219272 8370301380
8381443941 1498497173 0766162961 3420591050 1481428394
9700695951 6769390415 5790285635 6911055547 3126845714
9744963532 0554677940 7751840566 6763722296 9090346128
7068298871 0427876109 0090999160 4438217945 1176362083
5379716161 8331243644 3126785543 5550800507 9861246643
9772413550 2128238026 7267199149 8972724851 2981287283
6974892764 2079286866 6970177259 7944078581 5590933250
8554131299 9465811185 2769165246 4790819119 3842332758
9769957301 2098103009 1710016957 1879161694 2270079528
9151919125 2105389183 8538959315 1674005057 2381740103
0621004380 2430111879 7770425232 8073236575 1296093724
5605368003 7516596164 2361477093 3039122440 9752871732
0679761281 2042802673 9256557305 6759315126 4575004787
5756531854 8258214115 7403047314 7492511910 8356157657
3200254610 9686701890 3076485313 7383291268 2481741181
3590328266 2508254931 3211431478 9533523170 4398905392
8534946642 8860742683 7182490249 8092479487 2266336868
2379958087 5637040808 6556493219 0548963778 5549531167
3979352707 9947045239 9153297534 3586905141 0586409653
4514182896 4744393671 8285271184 3560799285 8959781765
4395011308 8848419163 5166732136 9286083095 6744502801
8003737164 5800916808 2972708715 6091850386 5405343666
0045504985 6246873760 2255704159 5800250174 0953618392
8764345800 3670864954 0579417200 8513635712 7163768323
4931342307 0382127448 4501440529 5416953743 8194545945
6533165140 9909937227 2280101965 4652726227 8315121034
6768616682 6131471843 6100255178 6324795015 0022953695
4663177395 8934413148 1485834694 3745239811 5995466607
1205997794 3634401850 7836089910 8948073419 6339392593
1897394094 3110042116 7291201997 2262660987 1927014024
1058055153 1510010980 4996044147 2910394510 3031266411
4726736839 9733150350 3674274154 6992633165 2704329406
7523744907 5056739508 9296747791 1580086439 9992564817
2088474292 5082154627 9856079127 7686119460 8621034940
5535850134 4721902445 4382452108 9284409498 1327170106
7396647111 4931896789 9776615954 8818619317 6900175027
9017838246 2438787383 1483279500 8790264339 9257702658
8005849778 9846242956 6032127694 5810824348 1296908409
7255067105 4732471317 2549971919 0103955330 5847040728
0816931586 2609388601 9147689944 1376736214 3208360737
5131574376 3167546664 7918675389 6571555100 8506268100
0511982748 6807780592 6677656541 0083477857 1024250133
2533915873 8476102412 9794736751 0011634989 7780374593
0025457609 8706710921 5359711517 8252014281 2166475430
3407512860 0240297038 4286159842 8981660214 3429849088
9173596821 9228446912 3035904329 8772318433 0991418726
4674607558 3187257131 3883235601 5809009594 1825302077
9939764846 2597901883 3417938309 2096584146 3574411985
8782964758 5094305300 8148341821 7478266037 7376225299
7703468752 9035173107 9208322003 8080809212 1643465868
1798981050 4274375385 7867891863 5051771750 1606531826
4069288832 5013591951 7178537687 8658817523 6642153401
0961295763 0747626480 7031275736 5787762352 8590571539
3248457650 3944390496 6680877118 9919249893 3896524852
3955367958 2753061416 7131757915 7563866060 0483999417
9548705868 2092011951 5495203129 4562451315 4225065748
5862916160 6523796643 0101726939 5028229466 7489681746
8211639967 9495029428 4013099235 9012782504 3742819255
7634533217 5761622927 5111059836 8271567229 7786200537
2293231408 2887058749 4440601162 3652162771 7558503013
4514714527 6584186427 7071769968 4354996202 5754743181
1994883385 8067596923 5958062216 5832464092 0953506483
5793581774 2903018315 3512900143 2149551817 7456908388
7193206977 6969565777 1754499149 9114313689 5083616069
2539606469 8933748709 4293321918 5601299108 5644702562
5716350550 8620689240 2975896847 1428367868 4735455533
5834776525 3615657818 9996983068 6546717364 4599634313
6468195427 4204904724 3306467500 1442697508 3223690130
8389549263 7066778406 5313286648 8608012951 3771720847
5811577194 9101234514 1774941482 7735800414 3266733237
9617716965 6985827858 3230050526 5883502247 8680506482
0144457059 3197343382 9238600726 0169651090 3258980909
9128376522 7538149352 9845099414 9669338628 1556803130
6981064525 1927038185 1587264869 1762563239 4414252161
1842776914 5067718411 7357143966 8100561548 3952443154
9448642383 8429890039 9826113322 4689633465 2210469254
5137969276 0097196453 3895533210 5584245640 1874486110
5095911176 6828942711 6400540105 0377042034 6052521318
2280458929 9863790357 2350665108 7823500433 4994239128
5236308896 5109892466 4105633158 4171142885 3041437722
8662983231 8970869030 4003013259 5147677423 7516158840
9158380591 5167350451 9131178193 9434284829 2227230406
1422582078 0278291480 7042676162 9302539228 3210849177
5998420059 5105312164 7318184094 9313980044 4072847325
9026091697 3099815385 3939031280 8788239029 4800157900
8000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000.