From c91153492828cf940e385994b888e149b05fdb04 Mon Sep 17 00:00:00 2001 From: xwyam Date: Wed, 17 Apr 2013 14:34:39 +0800 Subject: [PATCH] . --- base_exp.txt | 1000 ++++++++++++++++++++++++++++++++++++++++++ c++/0.hpp | 12 + c++/1.cpp | 17 + c++/10.cpp | 34 ++ c++/11.cpp | 108 +++++ c++/112.cpp | 41 ++ c++/12.cpp | 41 ++ c++/13.cpp | 123 ++++++ c++/14.cpp | 52 +++ c++/15.cpp | 20 + c++/16.cpp | 19 + c++/17.cpp | 57 +++ c++/19.cpp | 59 +++ c++/2.cpp | 21 + c++/20.cpp | 28 ++ c++/21.cpp | 34 ++ c++/22.cpp | 3 + c++/23.cpp | 26 ++ c++/24.cpp | 36 ++ c++/25.cpp | 52 +++ c++/26.cpp | 56 +++ c++/3.cpp | 29 ++ c++/4.cpp | 34 ++ c++/48.cpp | 35 ++ c++/5.cpp | 23 + c++/6.cpp | 23 + c++/7.cpp | 29 ++ c++/8.cpp | 44 ++ c++/9.cpp | 25 ++ c++/lib/cipher1.txt | 1 + c++/lib/factor.cpp | 33 ++ c++/lib/lint.cpp | 502 ++++++++++++++++++++++ c++/lib/lint.hpp | 69 +++ c++/lib/names.txt | 1 + c++/lib/random.h | 31 ++ c++/lib/try.cpp | 23 + cipher1.txt | 1 + keylog.txt | 50 +++ matrix.txt | 80 ++++ names.txt | 1 + network.txt | 40 ++ poker.txt | 1000 ++++++++++++++++++++++++++++++++++++++++++ python/1.py | 25 ++ python/10.py | 42 ++ python/100.py | 6 + python/101.py | 30 ++ python/102.py | 26 ++ python/104.py | 48 +++ python/107.py | 45 ++ python/108.py | 49 +++ python/109.py | 30 ++ python/11.py | 45 ++ python/110.py | 49 +++ python/111.py | 68 +++ python/112.py | 27 ++ python/113.py | 24 ++ python/119.py | 29 ++ python/12.py | 30 ++ python/13.py | 108 +++++ python/130.py | 32 ++ python/132.py | 32 ++ python/134.py | 41 ++ python/138.py | 25 ++ python/14.py | 49 +++ python/15.py | 9 + python/16.py | 7 + python/162.py | 25 ++ python/17.py | 66 +++ python/18.py | 50 +++ python/19.py | 33 ++ python/2.py | 24 ++ python/20.py | 13 + python/21.py | 19 + python/22.py | 21 + python/23.py | 49 +++ python/24.py | 25 ++ python/25.py | 7 + python/26.py | 39 ++ python/27.py | 33 ++ python/28.py | 8 + python/29.py | 8 + python/3.py | 20 + python/30.py | 15 + python/31.py | 17 + python/32.py | 53 +++ python/33.py | 39 ++ python/34.py | 25 ++ python/35.py | 42 ++ python/36.py | 45 ++ python/37.py | 35 ++ python/38.py | 31 ++ python/384/384.py | 98 +++++ python/384/p.tex | 50 +++ python/39.py | 21 + python/4.py | 4 + python/40.py | 32 ++ python/41.py | 33 ++ python/42.py | 29 ++ python/43.py | 31 ++ python/44.py | 21 + python/45.py | 8 + python/46.py | 31 ++ python/47.py | 37 ++ python/48.py | 6 + python/49.py | 48 +++ python/5.py | 36 ++ python/50.py | 34 ++ python/51.py | 57 +++ python/52.py | 24 ++ python/53.py | 26 ++ python/54.py | 61 +++ python/55.py | 39 ++ python/56.py | 15 + python/57.py | 10 + python/58.py | 28 ++ python/59.py | 18 + python/6.py | 16 + python/60.py | 76 ++++ python/61.py | 74 ++++ python/62.py | 38 ++ python/63.py | 9 + python/64.py | 29 ++ python/65.py | 25 ++ python/66.py | 53 +++ python/67.py | 44 ++ python/69.py | 51 +++ python/7.py | 23 + python/70.py | 54 +++ python/71.py | 15 + python/72.py | 35 ++ python/73.py | 10 + python/74.py | 38 ++ python/75.py | 41 ++ python/76.py | 21 + python/77.py | 40 ++ python/78.py | 19 + python/8.py | 19 + python/80.py | 37 ++ python/81.py | 43 ++ python/82.py | 88 ++++ python/85.py | 24 ++ python/86.py | 31 ++ python/87.py | 36 ++ python/88.py | 16 + python/89.py | 42 ++ python/9.py | 8 + python/91.py | 25 ++ python/92.py | 58 +++ python/93.py | 60 +++ python/94.py | 31 ++ python/96.py | 201 +++++++++ python/97.py | 19 + python/98.py | 115 +++++ python/99.py | 16 + roman.txt | 1000 ++++++++++++++++++++++++++++++++++++++++++ scheme/5.scm | 22 + scheme/55.scm | 40 ++ scheme/80.scm | 37 ++ sudoku.txt | 500 +++++++++++++++++++++ triangle.txt | 100 +++++ triangles.txt | 1001 +++++++++++++++++++++++++++++++++++++++++++ words.txt | 1 + 162 files changed, 10609 insertions(+) create mode 100644 base_exp.txt create mode 100644 c++/0.hpp create mode 100644 c++/1.cpp create mode 100644 c++/10.cpp create mode 100644 c++/11.cpp create mode 100644 c++/112.cpp create mode 100644 c++/12.cpp create mode 100644 c++/13.cpp create mode 100644 c++/14.cpp create mode 100644 c++/15.cpp create mode 100644 c++/16.cpp create mode 100644 c++/17.cpp create mode 100644 c++/19.cpp create mode 100644 c++/2.cpp create mode 100644 c++/20.cpp create mode 100644 c++/21.cpp create mode 100644 c++/22.cpp create mode 100644 c++/23.cpp create mode 100644 c++/24.cpp create mode 100644 c++/25.cpp create mode 100644 c++/26.cpp create mode 100644 c++/3.cpp create mode 100644 c++/4.cpp create mode 100644 c++/48.cpp create mode 100644 c++/5.cpp create mode 100644 c++/6.cpp create mode 100644 c++/7.cpp create mode 100644 c++/8.cpp create mode 100644 c++/9.cpp create mode 100644 c++/lib/cipher1.txt create mode 100644 c++/lib/factor.cpp create mode 100644 c++/lib/lint.cpp create mode 100644 c++/lib/lint.hpp create mode 100644 c++/lib/names.txt create mode 100644 c++/lib/random.h create mode 100644 c++/lib/try.cpp create mode 100644 cipher1.txt create mode 100644 keylog.txt create mode 100644 matrix.txt create mode 100644 names.txt create mode 100644 network.txt create mode 100644 poker.txt create mode 100644 python/1.py create mode 100644 python/10.py create mode 100644 python/100.py create mode 100644 python/101.py create mode 100644 python/102.py create mode 100644 python/104.py create mode 100644 python/107.py create mode 100644 python/108.py create mode 100644 python/109.py create mode 100644 python/11.py create mode 100644 python/110.py create mode 100644 python/111.py create mode 100644 python/112.py create mode 100644 python/113.py create mode 100644 python/119.py create mode 100644 python/12.py create mode 100644 python/13.py create mode 100644 python/130.py create mode 100644 python/132.py create mode 100644 python/134.py create mode 100644 python/138.py create mode 100644 python/14.py create mode 100644 python/15.py create mode 100644 python/16.py create mode 100644 python/162.py create mode 100644 python/17.py create mode 100644 python/18.py create mode 100644 python/19.py create mode 100644 python/2.py create mode 100644 python/20.py create mode 100644 python/21.py create mode 100644 python/22.py create mode 100644 python/23.py create mode 100644 python/24.py create mode 100644 python/25.py create mode 100644 python/26.py create mode 100644 python/27.py create mode 100644 python/28.py create mode 100644 python/29.py create mode 100644 python/3.py create mode 100644 python/30.py create mode 100644 python/31.py create mode 100644 python/32.py create mode 100644 python/33.py create mode 100644 python/34.py create mode 100644 python/35.py create mode 100644 python/36.py create mode 100644 python/37.py create mode 100644 python/38.py create mode 100644 python/384/384.py create mode 100644 python/384/p.tex create mode 100644 python/39.py create mode 100644 python/4.py create mode 100644 python/40.py create mode 100644 python/41.py create mode 100644 python/42.py create mode 100644 python/43.py create mode 100644 python/44.py create mode 100644 python/45.py create mode 100644 python/46.py create mode 100644 python/47.py create mode 100644 python/48.py create mode 100644 python/49.py create mode 100644 python/5.py create mode 100644 python/50.py create mode 100644 python/51.py create mode 100644 python/52.py create mode 100644 python/53.py create mode 100644 python/54.py create mode 100644 python/55.py create mode 100644 python/56.py create mode 100644 python/57.py create mode 100644 python/58.py create mode 100644 python/59.py create mode 100644 python/6.py create mode 100644 python/60.py create mode 100644 python/61.py create mode 100644 python/62.py create mode 100644 python/63.py create mode 100644 python/64.py create mode 100644 python/65.py create mode 100644 python/66.py create mode 100644 python/67.py create mode 100644 python/69.py create mode 100644 python/7.py create mode 100644 python/70.py create mode 100644 python/71.py create mode 100644 python/72.py create mode 100644 python/73.py create mode 100644 python/74.py create mode 100644 python/75.py create mode 100644 python/76.py create mode 100644 python/77.py create mode 100644 python/78.py create mode 100644 python/8.py create mode 100644 python/80.py create mode 100644 python/81.py create mode 100644 python/82.py create mode 100644 python/85.py create mode 100644 python/86.py create mode 100644 python/87.py create mode 100644 python/88.py create mode 100644 python/89.py create mode 100644 python/9.py create mode 100644 python/91.py create mode 100644 python/92.py create mode 100644 python/93.py create mode 100644 python/94.py create mode 100644 python/96.py create mode 100644 python/97.py create mode 100644 python/98.py create mode 100644 python/99.py create mode 100644 roman.txt create mode 100644 scheme/5.scm create mode 100644 scheme/55.scm create mode 100644 scheme/80.scm create mode 100644 sudoku.txt create mode 100644 triangle.txt create mode 100644 triangles.txt create mode 100644 words.txt diff --git a/base_exp.txt b/base_exp.txt new file mode 100644 index 0000000..92201db --- /dev/null +++ b/base_exp.txt @@ -0,0 +1,1000 @@ +519432,525806 +632382,518061 +78864,613712 +466580,530130 +780495,510032 +525895,525320 +15991,714883 +960290,502358 +760018,511029 +166800,575487 +210884,564478 +555151,523163 +681146,515199 +563395,522587 +738250,512126 +923525,503780 +595148,520429 +177108,572629 +750923,511482 +440902,532446 +881418,505504 +422489,534197 +979858,501616 +685893,514935 +747477,511661 +167214,575367 +234140,559696 +940238,503122 +728969,512609 +232083,560102 +900971,504694 +688801,514772 +189664,569402 +891022,505104 +445689,531996 +119570,591871 +821453,508118 +371084,539600 +911745,504251 +623655,518600 +144361,582486 +352442,541775 +420726,534367 +295298,549387 +6530,787777 +468397,529976 +672336,515696 +431861,533289 +84228,610150 +805376,508857 +444409,532117 +33833,663511 +381850,538396 +402931,536157 +92901,604930 +304825,548004 +731917,512452 +753734,511344 +51894,637373 +151578,580103 +295075,549421 +303590,548183 +333594,544123 +683952,515042 +60090,628880 +951420,502692 +28335,674991 +714940,513349 +343858,542826 +549279,523586 +804571,508887 +260653,554881 +291399,549966 +402342,536213 +408889,535550 +40328,652524 +375856,539061 +768907,510590 +165993,575715 +976327,501755 +898500,504795 +360404,540830 +478714,529095 +694144,514472 +488726,528258 +841380,507226 +328012,544839 +22389,690868 +604053,519852 +329514,544641 +772965,510390 +492798,527927 +30125,670983 +895603,504906 +450785,531539 +840237,507276 +380711,538522 +63577,625673 +76801,615157 +502694,527123 +597706,520257 +310484,547206 +944468,502959 +121283,591152 +451131,531507 +566499,522367 +425373,533918 +40240,652665 +39130,654392 +714926,513355 +469219,529903 +806929,508783 +287970,550487 +92189,605332 +103841,599094 +671839,515725 +452048,531421 +987837,501323 +935192,503321 +88585,607450 +613883,519216 +144551,582413 +647359,517155 +213902,563816 +184120,570789 +258126,555322 +502546,527130 +407655,535678 +401528,536306 +477490,529193 +841085,507237 +732831,512408 +833000,507595 +904694,504542 +581435,521348 +455545,531110 +873558,505829 +94916,603796 +720176,513068 +545034,523891 +246348,557409 +556452,523079 +832015,507634 +173663,573564 +502634,527125 +250732,556611 +569786,522139 +216919,563178 +521815,525623 +92304,605270 +164446,576167 +753413,511364 +11410,740712 +448845,531712 +925072,503725 +564888,522477 +7062,780812 +641155,517535 +738878,512100 +636204,517828 +372540,539436 +443162,532237 +571192,522042 +655350,516680 +299741,548735 +581914,521307 +965471,502156 +513441,526277 +808682,508700 +237589,559034 +543300,524025 +804712,508889 +247511,557192 +543486,524008 +504383,526992 +326529,545039 +792493,509458 +86033,609017 +126554,589005 +579379,521481 +948026,502823 +404777,535969 +265767,554022 +266876,553840 +46631,643714 +492397,527958 +856106,506581 +795757,509305 +748946,511584 +294694,549480 +409781,535463 +775887,510253 +543747,523991 +210592,564536 +517119,525990 +520253,525751 +247926,557124 +592141,520626 +346580,542492 +544969,523902 +506501,526817 +244520,557738 +144745,582349 +69274,620858 +292620,549784 +926027,503687 +736320,512225 +515528,526113 +407549,535688 +848089,506927 +24141,685711 +9224,757964 +980684,501586 +175259,573121 +489160,528216 +878970,505604 +969546,502002 +525207,525365 +690461,514675 +156510,578551 +659778,516426 +468739,529945 +765252,510770 +76703,615230 +165151,575959 +29779,671736 +928865,503569 +577538,521605 +927555,503618 +185377,570477 +974756,501809 +800130,509093 +217016,563153 +365709,540216 +774508,510320 +588716,520851 +631673,518104 +954076,502590 +777828,510161 +990659,501222 +597799,520254 +786905,509727 +512547,526348 +756449,511212 +869787,505988 +653747,516779 +84623,609900 +839698,507295 +30159,670909 +797275,509234 +678136,515373 +897144,504851 +989554,501263 +413292,535106 +55297,633667 +788650,509637 +486748,528417 +150724,580377 +56434,632490 +77207,614869 +588631,520859 +611619,519367 +100006,601055 +528924,525093 +190225,569257 +851155,506789 +682593,515114 +613043,519275 +514673,526183 +877634,505655 +878905,505602 +1926,914951 +613245,519259 +152481,579816 +841774,507203 +71060,619442 +865335,506175 +90244,606469 +302156,548388 +399059,536557 +478465,529113 +558601,522925 +69132,620966 +267663,553700 +988276,501310 +378354,538787 +529909,525014 +161733,576968 +758541,511109 +823425,508024 +149821,580667 +269258,553438 +481152,528891 +120871,591322 +972322,501901 +981350,501567 +676129,515483 +950860,502717 +119000,592114 +392252,537272 +191618,568919 +946699,502874 +289555,550247 +799322,509139 +703886,513942 +194812,568143 +261823,554685 +203052,566221 +217330,563093 +734748,512313 +391759,537328 +807052,508777 +564467,522510 +59186,629748 +113447,594545 +518063,525916 +905944,504492 +613922,519213 +439093,532607 +445946,531981 +230530,560399 +297887,549007 +459029,530797 +403692,536075 +855118,506616 +963127,502245 +841711,507208 +407411,535699 +924729,503735 +914823,504132 +333725,544101 +176345,572832 +912507,504225 +411273,535308 +259774,555036 +632853,518038 +119723,591801 +163902,576321 +22691,689944 +402427,536212 +175769,572988 +837260,507402 +603432,519893 +313679,546767 +538165,524394 +549026,523608 +61083,627945 +898345,504798 +992556,501153 +369999,539727 +32847,665404 +891292,505088 +152715,579732 +824104,507997 +234057,559711 +730507,512532 +960529,502340 +388395,537687 +958170,502437 +57105,631806 +186025,570311 +993043,501133 +576770,521664 +215319,563513 +927342,503628 +521353,525666 +39563,653705 +752516,511408 +110755,595770 +309749,547305 +374379,539224 +919184,503952 +990652,501226 +647780,517135 +187177,570017 +168938,574877 +649558,517023 +278126,552016 +162039,576868 +658512,516499 +498115,527486 +896583,504868 +561170,522740 +747772,511647 +775093,510294 +652081,516882 +724905,512824 +499707,527365 +47388,642755 +646668,517204 +571700,522007 +180430,571747 +710015,513617 +435522,532941 +98137,602041 +759176,511070 +486124,528467 +526942,525236 +878921,505604 +408313,535602 +926980,503640 +882353,505459 +566887,522345 +3326,853312 +911981,504248 +416309,534800 +392991,537199 +622829,518651 +148647,581055 +496483,527624 +666314,516044 +48562,641293 +672618,515684 +443676,532187 +274065,552661 +265386,554079 +347668,542358 +31816,667448 +181575,571446 +961289,502320 +365689,540214 +987950,501317 +932299,503440 +27388,677243 +746701,511701 +492258,527969 +147823,581323 +57918,630985 +838849,507333 +678038,515375 +27852,676130 +850241,506828 +818403,508253 +131717,587014 +850216,506834 +904848,504529 +189758,569380 +392845,537217 +470876,529761 +925353,503711 +285431,550877 +454098,531234 +823910,508003 +318493,546112 +766067,510730 +261277,554775 +421530,534289 +694130,514478 +120439,591498 +213308,563949 +854063,506662 +365255,540263 +165437,575872 +662240,516281 +289970,550181 +847977,506933 +546083,523816 +413252,535113 +975829,501767 +361540,540701 +235522,559435 +224643,561577 +736350,512229 +328303,544808 +35022,661330 +307838,547578 +474366,529458 +873755,505819 +73978,617220 +827387,507845 +670830,515791 +326511,545034 +309909,547285 +400970,536363 +884827,505352 +718307,513175 +28462,674699 +599384,520150 +253565,556111 +284009,551093 +343403,542876 +446557,531921 +992372,501160 +961601,502308 +696629,514342 +919537,503945 +894709,504944 +892201,505051 +358160,541097 +448503,531745 +832156,507636 +920045,503924 +926137,503675 +416754,534757 +254422,555966 +92498,605151 +826833,507873 +660716,516371 +689335,514746 +160045,577467 +814642,508425 +969939,501993 +242856,558047 +76302,615517 +472083,529653 +587101,520964 +99066,601543 +498005,527503 +709800,513624 +708000,513716 +20171,698134 +285020,550936 +266564,553891 +981563,501557 +846502,506991 +334,1190800 +209268,564829 +9844,752610 +996519,501007 +410059,535426 +432931,533188 +848012,506929 +966803,502110 +983434,501486 +160700,577267 +504374,526989 +832061,507640 +392825,537214 +443842,532165 +440352,532492 +745125,511776 +13718,726392 +661753,516312 +70500,619875 +436952,532814 +424724,533973 +21954,692224 +262490,554567 +716622,513264 +907584,504425 +60086,628882 +837123,507412 +971345,501940 +947162,502855 +139920,584021 +68330,621624 +666452,516038 +731446,512481 +953350,502619 +183157,571042 +845400,507045 +651548,516910 +20399,697344 +861779,506331 +629771,518229 +801706,509026 +189207,569512 +737501,512168 +719272,513115 +479285,529045 +136046,585401 +896746,504860 +891735,505067 +684771,514999 +865309,506184 +379066,538702 +503117,527090 +621780,518717 +209518,564775 +677135,515423 +987500,501340 +197049,567613 +329315,544673 +236756,559196 +357092,541226 +520440,525733 +213471,563911 +956852,502490 +702223,514032 +404943,535955 +178880,572152 +689477,514734 +691351,514630 +866669,506128 +370561,539656 +739805,512051 +71060,619441 +624861,518534 +261660,554714 +366137,540160 +166054,575698 +601878,519990 +153445,579501 +279899,551729 +379166,538691 +423209,534125 +675310,515526 +145641,582050 +691353,514627 +917468,504026 +284778,550976 +81040,612235 +161699,576978 +616394,519057 +767490,510661 +156896,578431 +427408,533714 +254849,555884 +737217,512182 +897133,504851 +203815,566051 +270822,553189 +135854,585475 +778805,510111 +784373,509847 +305426,547921 +733418,512375 +732087,512448 +540668,524215 +702898,513996 +628057,518328 +640280,517587 +422405,534204 +10604,746569 +746038,511733 +839808,507293 +457417,530938 +479030,529064 +341758,543090 +620223,518824 +251661,556451 +561790,522696 +497733,527521 +724201,512863 +489217,528217 +415623,534867 +624610,518548 +847541,506953 +432295,533249 +400391,536421 +961158,502319 +139173,584284 +421225,534315 +579083,521501 +74274,617000 +701142,514087 +374465,539219 +217814,562985 +358972,540995 +88629,607424 +288597,550389 +285819,550812 +538400,524385 +809930,508645 +738326,512126 +955461,502535 +163829,576343 +826475,507891 +376488,538987 +102234,599905 +114650,594002 +52815,636341 +434037,533082 +804744,508880 +98385,601905 +856620,506559 +220057,562517 +844734,507078 +150677,580387 +558697,522917 +621751,518719 +207067,565321 +135297,585677 +932968,503404 +604456,519822 +579728,521462 +244138,557813 +706487,513800 +711627,513523 +853833,506674 +497220,527562 +59428,629511 +564845,522486 +623621,518603 +242689,558077 +125091,589591 +363819,540432 +686453,514901 +656813,516594 +489901,528155 +386380,537905 +542819,524052 +243987,557841 +693412,514514 +488484,528271 +896331,504881 +336730,543721 +728298,512647 +604215,519840 +153729,579413 +595687,520398 +540360,524240 +245779,557511 +924873,503730 +509628,526577 +528523,525122 +3509,847707 +522756,525555 +895447,504922 +44840,646067 +45860,644715 +463487,530404 +398164,536654 +894483,504959 +619415,518874 +966306,502129 +990922,501212 +835756,507474 +548881,523618 +453578,531282 +474993,529410 +80085,612879 +737091,512193 +50789,638638 +979768,501620 +792018,509483 +665001,516122 +86552,608694 +462772,530469 +589233,520821 +891694,505072 +592605,520594 +209645,564741 +42531,649269 +554376,523226 +803814,508929 +334157,544042 +175836,572970 +868379,506051 +658166,516520 +278203,551995 +966198,502126 +627162,518387 +296774,549165 +311803,547027 +843797,507118 +702304,514032 +563875,522553 +33103,664910 +191932,568841 +543514,524006 +506835,526794 +868368,506052 +847025,506971 +678623,515342 +876139,505726 +571997,521984 +598632,520198 +213590,563892 +625404,518497 +726508,512738 +689426,514738 +332495,544264 +411366,535302 +242546,558110 +315209,546555 +797544,509219 +93889,604371 +858879,506454 +124906,589666 +449072,531693 +235960,559345 +642403,517454 +720567,513047 +705534,513858 +603692,519870 +488137,528302 +157370,578285 +63515,625730 +666326,516041 +619226,518883 +443613,532186 +597717,520257 +96225,603069 +86940,608450 +40725,651929 +460976,530625 +268875,553508 +270671,553214 +363254,540500 +384248,538137 +762889,510892 +377941,538833 +278878,551890 +176615,572755 +860008,506412 +944392,502967 +608395,519571 +225283,561450 +45095,645728 +333798,544090 +625733,518476 +995584,501037 +506135,526853 +238050,558952 +557943,522972 +530978,524938 +634244,517949 +177168,572616 +85200,609541 +953043,502630 +523661,525484 +999295,500902 +840803,507246 +961490,502312 +471747,529685 +380705,538523 +911180,504275 +334149,544046 +478992,529065 +325789,545133 +335884,543826 +426976,533760 +749007,511582 +667067,516000 +607586,519623 +674054,515599 +188534,569675 +565185,522464 +172090,573988 +87592,608052 +907432,504424 +8912,760841 +928318,503590 +757917,511138 +718693,513153 +315141,546566 +728326,512645 +353492,541647 +638429,517695 +628892,518280 +877286,505672 +620895,518778 +385878,537959 +423311,534113 +633501,517997 +884833,505360 +883402,505416 +999665,500894 +708395,513697 +548142,523667 +756491,511205 +987352,501340 +766520,510705 +591775,520647 +833758,507563 +843890,507108 +925551,503698 +74816,616598 +646942,517187 +354923,541481 +256291,555638 +634470,517942 +930904,503494 +134221,586071 +282663,551304 +986070,501394 +123636,590176 +123678,590164 +481717,528841 +423076,534137 +866246,506145 +93313,604697 +783632,509880 +317066,546304 +502977,527103 +141272,583545 +71708,618938 +617748,518975 +581190,521362 +193824,568382 +682368,515131 +352956,541712 +351375,541905 +505362,526909 +905165,504518 +128645,588188 +267143,553787 +158409,577965 +482776,528754 +628896,518282 +485233,528547 +563606,522574 +111001,595655 +115920,593445 +365510,540237 +959724,502374 +938763,503184 +930044,503520 +970959,501956 +913658,504176 +68117,621790 +989729,501253 +567697,522288 +820427,508163 +54236,634794 +291557,549938 +124961,589646 +403177,536130 +405421,535899 +410233,535417 +815111,508403 +213176,563974 +83099,610879 +998588,500934 +513640,526263 +129817,587733 +1820,921851 +287584,550539 +299160,548820 +860621,506386 +529258,525059 +586297,521017 +953406,502616 +441234,532410 +986217,501386 +781938,509957 +461247,530595 +735424,512277 +146623,581722 +839838,507288 +510667,526494 +935085,503327 +737523,512167 +303455,548204 +992779,501145 +60240,628739 +939095,503174 +794368,509370 +501825,527189 +459028,530798 +884641,505363 +512287,526364 +835165,507499 +307723,547590 +160587,577304 +735043,512300 +493289,527887 +110717,595785 +306480,547772 +318593,546089 +179810,571911 +200531,566799 +314999,546580 +197020,567622 +301465,548487 +237808,559000 +131944,586923 +882527,505449 +468117,530003 +711319,513541 +156240,578628 +965452,502162 +992756,501148 +437959,532715 +739938,512046 +614249,519196 +391496,537356 +62746,626418 +688215,514806 +75501,616091 +883573,505412 +558824,522910 +759371,511061 +173913,573489 +891351,505089 +727464,512693 +164833,576051 +812317,508529 +540320,524243 +698061,514257 +69149,620952 +471673,529694 +159092,577753 +428134,533653 +89997,606608 +711061,513557 +779403,510081 +203327,566155 +798176,509187 +667688,515963 +636120,517833 +137410,584913 +217615,563034 +556887,523038 +667229,515991 +672276,515708 +325361,545187 +172115,573985 +13846,725685 \ No newline at end of file diff --git a/c++/0.hpp b/c++/0.hpp new file mode 100644 index 0000000..8ecb8dc --- /dev/null +++ b/c++/0.hpp @@ -0,0 +1,12 @@ +#include +#include +#include +#include +#include +using namespace std; + +typedef unsigned long long int uu; // 简化大整数定义 + +#define _eps 0.00001 // 设置最小值表示 + + diff --git a/c++/1.cpp b/c++/1.cpp new file mode 100644 index 0000000..e8346f2 --- /dev/null +++ b/c++/1.cpp @@ -0,0 +1,17 @@ +/** If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. +Find the sum of all the multiples of 3 or 5 below 1000. */ + +#include "0.hpp" + +const int _a = 3; +const int _b = 5; +const int _max = 1000; + +int main() +{ + int total = 0; + for(int i = 1; i < 1000; i++) // 循环体 + if(i % _a == 0 || i % _b == 0) total += i; // 满足条件的数字加入到 total 中 + cout << total << endl; + return 0; +} diff --git a/c++/10.cpp b/c++/10.cpp new file mode 100644 index 0000000..ed845c4 --- /dev/null +++ b/c++/10.cpp @@ -0,0 +1,34 @@ +/** The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. +Find the sum of all the primes below two million. */ + +#include "0.hpp" +#include + +uu factor(uu a, uu min = 1) +{ + uu temp = min; + uu sqr = (int)(sqrt((double)a) + _eps); + while(temp < sqr) if(a % ++temp == 0) break; + if(a % temp == 0) return temp; + else return 1; +} + +int main() +{ + const uu _max = 2000000; + + uu sum = 0; + timeb start, end; + ftime(&start); + for(uu i = 3; i <= _max; i += 2) { + if(factor(i) == 1) { + //cout << i << "\t"; + sum += i; + } + } + sum += 2; + ftime(&end); + cout << sum << endl; + cout << (end.time - start.time) * 1000 + end.millitm - start.millitm << endl; + return 0; +} diff --git a/c++/11.cpp b/c++/11.cpp new file mode 100644 index 0000000..f64137b --- /dev/null +++ b/c++/11.cpp @@ -0,0 +1,108 @@ +/** In the 20 * 20 grid below, four numbers along a diagonal line have been marked in red. +08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 +49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 +81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 +52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 +22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 +24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 +32 98 81 28 64 23 67 10 (26) 38 40 67 59 54 70 66 18 38 64 70 +67 26 20 68 02 62 12 20 95 (63) 94 39 63 08 40 91 66 49 94 21 +24 55 58 05 66 73 99 26 97 17 (78) 78 96 83 14 88 34 89 63 72 +21 36 23 09 75 00 76 44 20 45 35 (14) 00 61 33 97 34 31 33 95 +78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92 +16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57 +86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58 +19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40 +04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66 +88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69 +04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36 +20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16 +20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54 +01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48 +The product of these numbers is 26 * 63 * 78 * 14 = 1788696. +What is the greatest product of four adjacent numbers in any direction (up, down, left, right, or diagonally) in the 2020 grid? */ + +#include "0.hpp" + +#define _unit 4 +#define _maxh 20 +#define _maxv 20 + +struct node { + int loch; + int locv; + int direc; + int value; +}; + +int vec[4][2] = {{0, 1}, {1, 1}, {1, 0}, {-1, 1}}; + +int matrix[_maxh][_maxv] = { +{8, 2, 22, 97, 38, 15, 0, 40, 0, 75, 4, 5, 7, 78, 52, 12, 50, 77, 91, 8}, +{49, 49, 99, 40, 17, 81, 18, 57, 60, 87, 17, 40, 98, 43, 69, 48, 4, 56, 62, 0}, +{81, 49, 31, 73, 55, 79, 14, 29, 93, 71, 40, 67, 53, 88, 30, 3, 49, 13, 36, 65}, +{52, 70, 95, 23, 4, 60, 11, 42, 69, 24, 68, 56, 1, 32, 56, 71, 37, 2, 36, 91}, +{22, 31, 16, 71, 51, 67, 63, 89, 41, 92, 36, 54, 22, 40, 40, 28, 66, 33, 13, 80}, +{24, 47, 32, 60, 99, 3, 45, 2, 44, 75, 33, 53, 78, 36, 84, 20, 35, 17, 12, 50}, +{32, 98, 81, 28, 64, 23, 67, 10, 26, 38, 40, 67, 59, 54, 70, 66, 18, 38, 64, 70}, +{67, 26, 20, 68, 2, 62, 12, 20, 95, 63, 94, 39, 63, 8, 40, 91, 66, 49, 94, 21}, +{24, 55, 58, 5, 66, 73, 99, 26, 97, 17, 78, 78, 96, 83, 14, 88, 34, 89, 63, 72}, +{21, 36, 23, 9, 75, 0, 76, 44, 20, 45, 35, 14, 0, 61, 33, 97, 34, 31, 33, 95}, +{78, 17, 53, 28, 22, 75, 31, 67, 15, 94, 3, 80, 4, 62, 16, 14, 9, 53, 56, 92}, +{16, 39, 5, 42, 96, 35, 31, 47, 55, 58, 88, 24, 0, 17, 54, 24, 36, 29, 85, 57}, +{86, 56, 0, 48, 35, 71, 89, 7, 5, 44, 44, 37, 44, 60, 21, 58, 51, 54, 17, 58}, +{19, 80, 81, 68, 5, 94, 47, 69, 28, 73, 92, 13, 86, 52, 17, 77, 4, 89, 55, 40}, +{4, 52, 8, 83, 97, 35, 99, 16, 7, 97, 57, 32, 16, 26, 26, 79, 33, 27, 98, 66}, +{88, 36, 68, 87, 57, 62, 20, 72, 3, 46, 33, 67, 46, 55, 12, 32, 63, 93, 53, 69}, +{4, 42, 16, 73, 38, 25, 39, 11, 24, 94, 72, 18, 8, 46, 29, 32, 40, 62, 76, 36}, +{20, 69, 36, 41, 72, 30, 23, 88, 34, 62, 99, 69, 82, 67, 59, 85, 74, 4, 36, 16}, +{20, 73, 35, 29, 78, 31, 90, 1, 74, 31, 49, 71, 48, 86, 81, 16, 23, 57, 5, 54}, +{1, 70, 54, 71, 83, 51, 54, 69, 16, 92, 33, 48, 61, 43, 52, 1, 89, 19, 67, 48}, +}; + +int calc(node a) +{ + int temp = 1; + for(int i = 0; i < _unit; i++) { + temp *= matrix[a.loch + i * vec[a.direc][0]][a.locv + i * vec[a.direc][1]]; + //cout << a.loch + i * vec[a.direc][0] << endl << a.locv + i * vec[a.direc][1] << endl; + //cout << temp << endl; + } + return temp; +} + + +int main() +{ + node max; + max.loch = 0; + max.locv = 0; + max.direc = 0; + max.value = 0; + node temp; + + for(int j = 0; j <= _maxv - _unit; j++) { + temp.locv = j; + for(int k = 0; k < 3; k++) { + temp.direc = k; + for(int i = 0; i <= _maxh - _unit; i++) { + temp.loch = i; + temp.value = calc(temp); + //cout << i << " " << j << " " << k << " " << temp.value << endl; + if(temp.value > max.value) max = temp; + } + } + temp.direc = 3; + for(int i = _unit - 1; i < _maxh; i++) { + temp.loch = i; + temp.value = calc(temp); + //cout << i << " " << j << " " << 4 << " " << temp.value << endl; + if(temp.value > max.value) max = temp; + } + } + + //max.value = calc(max); + cout << max.value << endl; + + return 0; +} diff --git a/c++/112.cpp b/c++/112.cpp new file mode 100644 index 0000000..5a5f457 --- /dev/null +++ b/c++/112.cpp @@ -0,0 +1,41 @@ +#include +using namespace std; + +int judge1(int a) +{ + int tmp = 10; + while(a != 0) { + if(tmp < a % 10) return 1; + tmp = a % 10; + a /= 10; + } + return 0; +} + +int judge2(int a) +{ + int tmp = 0; + while(a != 0) { + if(tmp > a % 10) return 1; + tmp = a % 10; + a /= 10; + } + return 0; +} + +int main() +{ + int nis = 0; + int nnot = 100; + int n = 100; + while(nis != nnot * 99) { + n += 1; + if(judge1(n) * judge2(n) > 0) nis += 1; + else nnot += 1; + } + cout << n << endl; + return 0; +} + + + diff --git a/c++/12.cpp b/c++/12.cpp new file mode 100644 index 0000000..cd88539 --- /dev/null +++ b/c++/12.cpp @@ -0,0 +1,41 @@ +/** The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be: +1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... +Let us list the factors of the first seven triangle numbers: + 1: 1 + 3: 1,3 + 6: 1,2,3,6 +10: 1,2,5,10 +15: 1,3,5,15 +21: 1,3,7,21 +28: 1,2,4,7,14,28 +We can see that 28 is the first triangle number to have over five divisors. +What is the value of the first triangle number to have over five hundred divisors? */ + +#include "0.hpp" + +int main() +{ + uu n = 1; + uu max; + uu sqr; + timeb start, now; + ftime(&start); + do { + max = n * (n + 1) / 2; + sqr = (uu)(sqrt((double)max)); + int count = 0; + uu temp = 1; + while(temp < sqr) { + if(max % temp == 0) count++; + temp++; + } + ftime(&now); + if(count >= 250) { + cout << n << " " << max << " time: " << (now.time * 1000 + now.millitm - start.time * 1000 - start.millitm) << "ms" << endl; + break; + } + n++; + } while(1); + + return 0; +} diff --git a/c++/13.cpp b/c++/13.cpp new file mode 100644 index 0000000..883e130 --- /dev/null +++ b/c++/13.cpp @@ -0,0 +1,123 @@ +/** Work out the first ten digits of the sum of the following one-hundred 50-digit numbers. */ + +#include "0.hpp" +#include "lib/lint.cpp" + +#define _max 100 + +string str[_max] = { +"37107287533902102798797998220837590246510135740250", +"46376937677490009712648124896970078050417018260538", +"74324986199524741059474233309513058123726617309629", +"91942213363574161572522430563301811072406154908250", +"23067588207539346171171980310421047513778063246676", +"89261670696623633820136378418383684178734361726757", +"28112879812849979408065481931592621691275889832738", +"44274228917432520321923589422876796487670272189318", +"47451445736001306439091167216856844588711603153276", +"70386486105843025439939619828917593665686757934951", +"62176457141856560629502157223196586755079324193331", +"64906352462741904929101432445813822663347944758178", +"92575867718337217661963751590579239728245598838407", +"58203565325359399008402633568948830189458628227828", +"80181199384826282014278194139940567587151170094390", +"35398664372827112653829987240784473053190104293586", +"86515506006295864861532075273371959191420517255829", +"71693888707715466499115593487603532921714970056938", +"54370070576826684624621495650076471787294438377604", +"53282654108756828443191190634694037855217779295145", +"36123272525000296071075082563815656710885258350721", +"45876576172410976447339110607218265236877223636045", +"17423706905851860660448207621209813287860733969412", +"81142660418086830619328460811191061556940512689692", +"51934325451728388641918047049293215058642563049483", +"62467221648435076201727918039944693004732956340691", +"15732444386908125794514089057706229429197107928209", +"55037687525678773091862540744969844508330393682126", +"18336384825330154686196124348767681297534375946515", +"80386287592878490201521685554828717201219257766954", +"78182833757993103614740356856449095527097864797581", +"16726320100436897842553539920931837441497806860984", +"48403098129077791799088218795327364475675590848030", +"87086987551392711854517078544161852424320693150332", +"59959406895756536782107074926966537676326235447210", +"69793950679652694742597709739166693763042633987085", +"41052684708299085211399427365734116182760315001271", +"65378607361501080857009149939512557028198746004375", +"35829035317434717326932123578154982629742552737307", +"94953759765105305946966067683156574377167401875275", +"88902802571733229619176668713819931811048770190271", +"25267680276078003013678680992525463401061632866526", +"36270218540497705585629946580636237993140746255962", +"24074486908231174977792365466257246923322810917141", +"91430288197103288597806669760892938638285025333403", +"34413065578016127815921815005561868836468420090470", +"23053081172816430487623791969842487255036638784583", +"11487696932154902810424020138335124462181441773470", +"63783299490636259666498587618221225225512486764533", +"67720186971698544312419572409913959008952310058822", +"95548255300263520781532296796249481641953868218774", +"76085327132285723110424803456124867697064507995236", +"37774242535411291684276865538926205024910326572967", +"23701913275725675285653248258265463092207058596522", +"29798860272258331913126375147341994889534765745501", +"18495701454879288984856827726077713721403798879715", +"38298203783031473527721580348144513491373226651381", +"34829543829199918180278916522431027392251122869539", +"40957953066405232632538044100059654939159879593635", +"29746152185502371307642255121183693803580388584903", +"41698116222072977186158236678424689157993532961922", +"62467957194401269043877107275048102390895523597457", +"23189706772547915061505504953922979530901129967519", +"86188088225875314529584099251203829009407770775672", +"11306739708304724483816533873502340845647058077308", +"82959174767140363198008187129011875491310547126581", +"97623331044818386269515456334926366572897563400500", +"42846280183517070527831839425882145521227251250327", +"55121603546981200581762165212827652751691296897789", +"32238195734329339946437501907836945765883352399886", +"75506164965184775180738168837861091527357929701337", +"62177842752192623401942399639168044983993173312731", +"32924185707147349566916674687634660915035914677504", +"99518671430235219628894890102423325116913619626622", +"73267460800591547471830798392868535206946944540724", +"76841822524674417161514036427982273348055556214818", +"97142617910342598647204516893989422179826088076852", +"87783646182799346313767754307809363333018982642090", +"10848802521674670883215120185883543223812876952786", +"71329612474782464538636993009049310363619763878039", +"62184073572399794223406235393808339651327408011116", +"66627891981488087797941876876144230030984490851411", +"60661826293682836764744779239180335110989069790714", +"85786944089552990653640447425576083659976645795096", +"66024396409905389607120198219976047599490197230297", +"64913982680032973156037120041377903785566085089252", +"16730939319872750275468906903707539413042652315011", +"94809377245048795150954100921645863754710598436791", +"78639167021187492431995700641917969777599028300699", +"15368713711936614952811305876380278410754449733078", +"40789923115535562561142322423255033685442488917353", +"44889911501440648020369068063960672322193204149535", +"41503128880339536053299340368006977710650566631954", +"81234880673210146739058568557934581403627822703280", +"82616570773948327592232845941706525094512325230608", +"22918802058777319719839450180888072429661980811197", +"77158542502016545090413245809786882778948721859617", +"72107838435069186155435662884062257473692284509516", +"20849603980134001723930671666823555245252804609722", +"53503534226472524250874054075591789781264330331690", +}; + +int main() +{ + lint a("0"); + lint b; + for(int i = 0; i < _max; i++) { + b = str[i]; + a = a + b; + } + + cout << a.getd()/**.substr(0, 10)*/ << endl; + + return 0; +} diff --git a/c++/14.cpp b/c++/14.cpp new file mode 100644 index 0000000..2ef1f9d --- /dev/null +++ b/c++/14.cpp @@ -0,0 +1,52 @@ +/** The following iterative sequence is defined for the set of positive integers: +n -> n/2 (n is even) +n -> 3n + 1 (n is odd) +Using the rule above and starting with 13, we generate the following sequence: +13 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1 +It can be seen that this sequence (starting at 13 and finishing at 1) contains 10 terms. Although it has not been proved yet (Collatz Problem), it is thought that all starting numbers finish at 1. +Which starting number, under one million, produces the longest chain? +NOTE: Once the chain starts the terms are allowed to go above one million. */ + +#include "0.hpp" + +#define _max 1000000 +#define _min 1 + +struct num { + uu value; + int ch; +}; + +int sq(uu a, int flag = 0) +{ + int count = 0; + while(a != 1) { + count++; + //if(flag) cout << a << " -> "; + if(a % 2) a = a * 3 + 1; + else a /= 2; + } + //if(flag) cout << 1 << endl; + return count; +} + +int main() +{ + timeb start, end; + ftime(&start); + num max; + max.ch = 0; + for(uu i = _max; i >= _min; i--) { + if(sq(i) > max.ch) { + max.value = i; + max.ch = sq(i); + } + } + ftime(&end); + cout << max.value << endl; + cout << max.ch << " times calc" << endl; + sq(max.value, 1); + cout << endl << "cost " << (end.time - start.time) * 1000 + end.millitm - start.millitm << " ms" << endl; + + return 0; +} diff --git a/c++/15.cpp b/c++/15.cpp new file mode 100644 index 0000000..77b3f73 --- /dev/null +++ b/c++/15.cpp @@ -0,0 +1,20 @@ +/** Starting in the top left corner of a 2*2 grid, there are 6 routes (without backtracking) to the bottom right corner. +How many routes are there through a 20*20 grid? */ + + +#include "0.hpp" + +#define _max 20 + +int main() +{ + double pro = 1.0; + for(int i = 1; i <= _max; i++) { + pro *= (i + (double)_max); + pro /= i; + } + + cout << (long long int)pro << endl; + + return 0; +} diff --git a/c++/16.cpp b/c++/16.cpp new file mode 100644 index 0000000..16d0fdd --- /dev/null +++ b/c++/16.cpp @@ -0,0 +1,19 @@ +/** What is the sum of the digits of the number 2^1000 ? */ +#include "0.hpp" +#include "lib/lint.cpp" + +uint sum(string a) +{ + uint suma = 0; + for(uint i = 0; i < a.size(); i++) suma += (a[i] - '0'); + return suma; +} + +int main() +{ + lint a("2"); + lint b("1000"); + lint c = a ^ b; + cout << sum(c.getd()) << endl; + return 0; +} diff --git a/c++/17.cpp b/c++/17.cpp new file mode 100644 index 0000000..e680a20 --- /dev/null +++ b/c++/17.cpp @@ -0,0 +1,57 @@ +/** If the numbers 1 to 5 are written out in words: one, two, three, four, five, then there are 3 + 3 + 5 + 4 + 4 = 19 letters used in total. +If all the numbers from 1 to 1000 (one thousand) inclusive were written out in words, how many letters would be used? +NOTE: Do not count spaces or hyphens. For example, 342 (three hundred and forty-two) contains 23 letters and 115 (one hundred and fifteen) contains 20 letters. The use of "and" when writing out numbers is in compliance with British usage. */ + +#include "0.hpp" + +int ele[20] = {0, 3, 3, 5, 4, 4, 3, 5, 5, 4, 3, +6, 6, 8, 8, 7, 7, 9, 8, 8}; + +int ten[11] = {0, 3, 6, 6, 5, 5, 5, 7, 6, 6, 7}; + +int dot[4] = {0, 8, 7, 7}; + +string eles[20] = {"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"}; + +string tens[11] = {"", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "nithty", "hundrad"}; + +string dots[4] = {"", "thousand", "million", "billion"}; + +int analyse(int x) +{ + int a = x / 100; + int b = x % 100; + int out = 0; + if(a) { + if(a / 10) { + out += ele[a / 10] + dot[1]; // thousand + cout << eles[a / 10] + " " + dots[1] + " "; + } + if(a % 10) { + out += ele[a % 10] + ten[10]; // hundrad + cout << eles[a % 10] + " " + tens[10] + " "; + } + if(b) { + out += 3; // and + cout << "and "; + } + } + if(b >= 20) { + out += ele[b % 10] + ten[b / 10]; + cout << tens[b / 10] + " " + eles[b % 10] + " "; + } + else { + out += ele[b]; + cout << eles[b]; + } + cout << endl; + return out; +} + +int main() +{ + int sum = 0; + for(int i = 1; i <= 1000; i++) sum += analyse(i); + cout << sum << endl; + return 0; +} diff --git a/c++/19.cpp b/c++/19.cpp new file mode 100644 index 0000000..8db46c2 --- /dev/null +++ b/c++/19.cpp @@ -0,0 +1,59 @@ +/** 1 Jan 1900 was a Monday. +How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)? */ + +#include "0.hpp" + +#define _ori 1901 +#define _base 1900 +#define _end 2000 +#define _moon 1 +#define _day 0 + +//int month[13] = {1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; +int month[13] = {0, 3, 0, 3, 2, 3, 2, 3, 3, 2, 3, 2, 3}; +int year[2] = {1, 2}; +string day[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; + +int leap(int a) +{ + if(a % 100 == 0) { + if(a % 400 == 0) return 1; + else return 0; + } + else { + if(a % 4 == 0) return 1; + else return 0; + } +} + +int main() +{ + int count = 0; + int sum = 1; + int yearsum; + for(int i = _ori; i <= _end; i++) { // loop of year + sum += year[leap(i - 1)]; + yearsum = 0; + cout << i << '\t'; + //for(int j = 2; j <= _moon; j++) // loop of month + //yearsum += month[j - 1]; + //if(_moon > 2 && leap(i)) yearsum += month[0]; + for(int j = 0; j < 12; j++) { + yearsum += month[j]; + if(j == 2 && leap(i)) yearsum++; + if((sum + yearsum) % 7 == _day) count++; + cout << (sum + yearsum) % 7 << " "; + } + + cout << '\t' << count; + cout << endl; + //for(int k = 0; k < month[_moon]; k++) // loop of date + //if((sum + k + yearsum) % 7 == _day) count++; + + //cout << i << " " << (sum + yearsum) % 7 << endl; + } + + cout << count << endl; + + return 0; +} diff --git a/c++/2.cpp b/c++/2.cpp new file mode 100644 index 0000000..bc2b099 --- /dev/null +++ b/c++/2.cpp @@ -0,0 +1,21 @@ +/** Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: +1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... +By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms. */ + +#include "0.hpp" + +int main() +{ + const uu _max = 4000000; + uu fib[3] = {0, 1, 1}; // 设置 fib 数列循环的数组 + uu count = 1; // fib 数列的项计数器 + uu sum = 0; // 满足条件的数的和 + while(fib[count] <= _max) { // fib 数列小于要求值时不断循环 + if(fib[count] % 2 == 0) sum += fib[count]; // 满足条件的项计入总和 + //cout << fib[count] << endl; + count = (count + 1) % 3; // 项计数器 + fib[count] = fib[(count + 1) % 3] + fib[(count + 2) % 3]; // fib 数列递推公式 + } + cout << sum << endl; // 输出结果 + return 0; +} diff --git a/c++/20.cpp b/c++/20.cpp new file mode 100644 index 0000000..38e28cf --- /dev/null +++ b/c++/20.cpp @@ -0,0 +1,28 @@ +/** n! means n * (n - 1) * ... * 3 * 2 * 1 +For example, 10! = 10 * 9 * ... * 3 * 2 * 1 = 3628800, +and the sum of the digits in the number 10! is 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27. +Find the sum of the digits in the number 100! */ + +#include "0.hpp" +#include "lib/lint.cpp" +#define _max 100 + +uint sum(string a) +{ + uint suma = 0; + for(uint i = 0; i < a.size(); i++) suma += (a[i] - '0'); + return suma; +} + +int main() +{ + lint a("1"); + lint b; + for(int i = 1; i <= _max; i++) { + b = itos(i); + a = a * b; + } + + cout << sum(a.getd()) << endl; + +} diff --git a/c++/21.cpp b/c++/21.cpp new file mode 100644 index 0000000..9076d6a --- /dev/null +++ b/c++/21.cpp @@ -0,0 +1,34 @@ +/** Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n). +If d(a) = b and d(b) = a, where a b, then a and b are an amicable pair and each of a and b are called amicable numbers. +For example, the proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110; therefore d(220) = 284. The proper divisors of 284 are 1, 2, 4, 71 and 142; so d(284) = 220. +Evaluate the sum of all the amicable numbers under 10000. */ + +#include "0.hpp" +#define _max 10000 + +uu ami(uu x) +{ + uu test = 1; + uu sqr = (uu)(sqrt((double)x) + _eps); + if(x == sqr * sqr) test += sqr; + for(uu i = 2; i < sqr; i++) + if(x % i == 0) { + test += i + x / i; + //cout << i << endl << x / i <= i) haha += i; + cout << haha << endl; + return 0; +} diff --git a/c++/24.cpp b/c++/24.cpp new file mode 100644 index 0000000..81bf661 --- /dev/null +++ b/c++/24.cpp @@ -0,0 +1,36 @@ +/** A permutation is an ordered arrangement of objects. For example, 3124 is one possible permutation of the digits 1, 2, 3 and 4. If all of the permutations are listed numerically or alphabetically, we call it lexicographic order. The lexicographic permutations of 0, 1 and 2 are: +012 021 102 120 201 210 +What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9? */ + +#include "0.hpp" + +#define _max 10 +#define _end 1000000 + +string ch = "0123456789"; +uu count[_max] = {}; +uu num[_max] = {1, 1}; + +int main() +{ + uu locale = _end - 1; + string out = ""; + + for(unsigned int i = 2; i < _max; i++) { + num[i] = num[i - 1] * i; + //cout << num[i] << endl; + } + + for(unsigned int i = _max - 1; i >= 1; i--) { + count[i] = locale / num[i]; + locale %= num[i]; + //cout << count[i] << endl; + out += ch[count[i]]; + ch = ch.substr(0, count[i]) + ch.substr(count[i] + 1); + //cout << out << '\t' << ch << endl; + } + + cout << out + ch << endl; + + return 0; +} diff --git a/c++/25.cpp b/c++/25.cpp new file mode 100644 index 0000000..665a882 --- /dev/null +++ b/c++/25.cpp @@ -0,0 +1,52 @@ +/** The Fibonacci sequence is defined by the recurrence relation: +Fn = Fn1 + Fn2, where F1 = 1 and F2 = 1. +Hence the first 12 terms will be: +F1 = 1 +F2 = 1 +F3 = 2 +F4 = 3 +F5 = 5 +F6 = 8 +F7 = 13 +F8 = 21 +F9 = 34 +F10 = 55 +F11 = 89 +F12 = 144 +The 12th term, F12, is the first term to contain three digits. +What is the first term in the Fibonacci sequence to contain 1000 digits? */ + +#include "0.hpp" +#include "lib/lint.cpp" + +void fib_matrix(unsigned int maxnum); + +int main() +{ + unsigned int max; + cin >> max; + + //for(int i = 1; i <= max; i++) cout << fib_recursive(i) << endl; + fib_matrix(max); + + return 0; +} + + +void fib_matrix(unsigned int maxnum) +{ + string first = "1"; + lint fib[2]; + fib[0] = first; + fib[1] = first; + //for(int i = 1; i <= maxnum; i++) { + int i = 1; + while(1) { + //cout << fib[i % 2].getd() << endl; + if(fib[i % 2].getd().size() >= maxnum) break; + if(i >= 2) fib[(i + 1) % 2] = fib[(i + 1) % 2] + fib[i % 2]; + i++; + } + //cout << fib[maxnum % 2].getd() << endl; + cout << i << endl; +} diff --git a/c++/26.cpp b/c++/26.cpp new file mode 100644 index 0000000..d179f37 --- /dev/null +++ b/c++/26.cpp @@ -0,0 +1,56 @@ +/** A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with denominators 2 to 10 are given: +1/2 = 0.5 +1/3 = 0.(3) +1/4 = 0.25 +1/5 = 0.2 +1/6 = 0.1(6) +1/7 = 0.(142857) +1/8 = 0.125 +1/9 = 0.(1) +1/10 = 0.1 +Where 0.1(6) means 0.166666..., and has a 1-digit recurring cycle. It can be seen that 1/7 has a 6-digit recurring cycle. +Find the value of d < 1000 for which 1/d contains the longest recurring cycle in its decimal fraction part. */ + +#include "0.hpp" + +const int _max = 10000; + +int cycle(int num) +{ + int mod[_max] = {0}; + int temp = 10; + int count = 0; + int flag = 1; + do { + if(temp == 0) break; + if(temp < num) temp *= 10; + //cout << temp / num; + temp %= num; + mod[count] = temp; + for(int i = 0; i <= count - 1; i++) + if(temp == mod[i]) { + flag = 0; + count -= i; + count--; + } + count++; + } while(flag); + //cout << '\t' << count << endl; + return count; +} + +int main() +{ + int max[2] = {0, 0}; + for(int i = 2; i <= _max; i++) { + //cout << i << '\t'; + int temp = cycle(i); + if(temp > max[1]) { + max[0] = i; + max[1] = temp; + } + } + + cout << max[0] << '\t' << max[1] << endl; + return 0; +} diff --git a/c++/3.cpp b/c++/3.cpp new file mode 100644 index 0000000..92a9b0e --- /dev/null +++ b/c++/3.cpp @@ -0,0 +1,29 @@ +/** The prime factors of 13195 are 5, 7, 13 and 29. +What is the largest prime factor of the number 600851475143 ? */ + +#include "0.hpp" + +/* 分解因数,如果是素数返回 1 */ +uu factor(uu a, uu min = 2) +{ + uu temp = min; + uu sqr = (int)(sqrt((double)a) + _eps); // 定义尝试上界 + while(temp < sqr) if(a % ++temp == 0) break; // 从最小值到上界开始尝试 + if(a % temp == 0) return temp; // 如果 a 能分解则返回最小因子 + else return 1; // 如果 a 是素数就返回 1,此处也可以设置为返回 x 本身 +} + +int main() +{ + uu num = 600851475143; + uu temp = 2; // 尝试循环分解 num 的因子 + do { + if(num % temp == 0) { // 如果满足 temp 整除 num + if(factor(num / temp) == 1) break; // 同时 num / temp 是素数则返回 + else num /= temp; // 如果 num / temp 不为素数,就缩小 num 以减小运算量 + } + temp++; // temp 增加 + } while(1); + cout << (num / temp) << endl; // 输出结果 + return 0; +} diff --git a/c++/4.cpp b/c++/4.cpp new file mode 100644 index 0000000..89e73f6 --- /dev/null +++ b/c++/4.cpp @@ -0,0 +1,34 @@ +/** A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 * 99. +Find the largest palindrome made from the product of two 3-digit numbers.. */ + +/** 1001 = 7 * 11 * 13 */ + +#define _max 997 + +#include "0.hpp" + +int main() +{ + int pal = 0; + for(int i = _max; i >= 100; i--) { + int temp = i; + pal = 0; + while(temp > 0) { + pal = pal * 10 + temp % 10; + temp /= 10; + } + pal += i * 1000; + + int m = 100; + do { + while(pal % m != 0) m++; + if(m < 1000 && pal / m < 1000) { + cout << pal << " = " << m << " * " << pal / m << endl; + return 0; + } + m++; + } while(m < 1000); + } + + return 0; +} diff --git a/c++/48.cpp b/c++/48.cpp new file mode 100644 index 0000000..d405283 --- /dev/null +++ b/c++/48.cpp @@ -0,0 +1,35 @@ +/** The series, 11 + 22 + 33 + ... + 1010 = 10405071317. +Find the last ten digits of the series, 1^1 + 2^2 + 3^3 + ... + 1000^1000. */ + +#include "0.hpp" +#include "lib/lint.cpp" + +#define _max 1000 +#define _mod 10000000000 +#define _array 10 + +uu pow(uu a, uu b, uu mod = _mod) +{ + int bi[_array] = {0}; + for(int i = 0; i < _array; i++) { + bi[i] = b % 2; + b /= 2; + } + uu out = 1; + for(int i = _array - 1; i >= 0; i--) { + out = (out % mod) * out % mod; + if(bi[i] == 1) out = (out * a) % mod; + } + return out; +} + +int main() +{ + uu sum = 0; + for(uu i = 1; i <= _max; i++) { + sum += pow(i, i); + sum = sum % _mod; + } + cout << sum << endl; + return 0; +} diff --git a/c++/5.cpp b/c++/5.cpp new file mode 100644 index 0000000..d83d1fb --- /dev/null +++ b/c++/5.cpp @@ -0,0 +1,23 @@ +/** 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. +What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? */ +#include "0.hpp" + +int main() +{ + const int _max = 20; + + uu num[_max] = {0}; + for(int i = 0; i < _max; i++) num[i] = i + 1; + for(int i = 0; i < _max; i++) + if(num[i] > 1) + for(int j = i + 1; j < _max; j++) + if(num[j] % num[i] == 0) num[j] /= num[i]; + uu divnum = 1; + for(int i = 0; i < _max; i++) { + divnum *= num[i]; + cout << num[i] << " "; + } + cout << endl; + cout << divnum << endl; + return 0; +} diff --git a/c++/6.cpp b/c++/6.cpp new file mode 100644 index 0000000..f304596 --- /dev/null +++ b/c++/6.cpp @@ -0,0 +1,23 @@ +/** The sum of the squares of the first ten natural numbers is, +1^2 + 2^2 + ... + 10^2 = 385 +The square of the sum of the first ten natural numbers is, +(1 + 2 + ... + 10)^2 = 552 = 3025 +Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 385 = 2640. +Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum. */ +#include "0.hpp" + +#define _max 100 + +int main() +{ + uu sum = 0; // 最终的和 + uu num[_max]; + for(int i = 0; i < _max; i++) num[i] = i + 1; + for(int i = 0; i < _max; i++) + for(int j = i + 1; j < _max; j++) + sum += num[i] * num[j]; + + sum *= 2; + cout << sum << endl; + return 0; +} diff --git a/c++/7.cpp b/c++/7.cpp new file mode 100644 index 0000000..f727a5e --- /dev/null +++ b/c++/7.cpp @@ -0,0 +1,29 @@ +/** By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. +What is the 10001st prime number? */ + +#include "0.hpp" + +#define _num 10001 + +uu factor(uu a, uu min = 1) +{ + uu temp = min; + uu sqr = (int)sqrt((double)a); + while(temp < sqr) if(a % ++temp == 0) break; + if(a % temp == 0) return temp; + else return 1; +} + +int main() +{ + uu num = 1; + int count = 0; + do { + if(factor(++num) == 1) { + //cout << num << endl; + ++count; + } + } while(count < _num); + cout << num << endl; + return 0; +} diff --git a/c++/8.cpp b/c++/8.cpp new file mode 100644 index 0000000..1eeb22e --- /dev/null +++ b/c++/8.cpp @@ -0,0 +1,44 @@ +/** Discover the largest product of five consecutive digits in the 1000-digit number. */ + +#include "0.hpp" + +string str = "731671765313306249192251196744265747423553491949349698352031277450632623957831801698480186947885184385861560789112949495459501737958331952853208805511125406987471585238630507156932909632952274430435576689664895044524452316173185640309871112172238311362229893423380308135336276614282806444486645238749303589072962904915604407723907138105158593079608667017242712188399879790879227492190169972088809377665727333001053367881220235421809751254540594752243258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450"; + +struct place { + string str; + int value; + int locale; +}; + +int sss(string ch) +{ + int pro = 1; + for(int i = 0; i < _unit; i++) { + pro *= (int)(ch[i] - '0'); + } + return pro; +} + +int main() +{ + const int _unit = 5; + int length = str.size() - _unit; + place max; + max.str = ""; + max.value = 0; + max.locale = 0; + + for(int i = 0; i <= length; i++) { + int valuetemp = sss(str.substr(i, _unit)); + if(valuetemp > max.value) { + max.locale = i; + max.value = valuetemp; + max.str = str.substr(i, _unit); + } + } + cout << "max product is " + max.str << endl; + cout << "the value of product is " << max.value << endl; + cout << "locale is " << max.locale << endl; + + return 0; +} diff --git a/c++/9.cpp b/c++/9.cpp new file mode 100644 index 0000000..590d0df --- /dev/null +++ b/c++/9.cpp @@ -0,0 +1,25 @@ +/** A Pythagorean triplet is a set of three natural numbers, a b c, for which, +a^2 + b^2 = c^2 +For example, 3^2 + 4^2 = 9 + 16 = 25 = 5^2. +There exists exactly one Pythagorean triplet for which a + b + c = 1000. +Find the product abc. */ + +#include "0.hpp" + +int main() +{ + const uu _max = 1000; + uu _min = (int)((sqrt(2) - 1) * _max); + + uu root; + uu i; + for(i = _min; i <= _max; i++) { + uu sqr = (i + _max) * (i + _max) - 2 * _max * _max; + root = (int)(sqrt((double)sqr) + _eps); + if(sqr == root * root) break; + } + cout << i << endl << (_max + root - i) / 2 << endl; + cout << abs(_max - i - root) / 2 << endl; + + return 0; +} diff --git a/c++/lib/cipher1.txt b/c++/lib/cipher1.txt new file mode 100644 index 0000000..08cee2d --- /dev/null +++ b/c++/lib/cipher1.txt @@ -0,0 +1 @@ +79,59,12,2,79,35,8,28,20,2,3,68,8,9,68,45,0,12,9,67,68,4,7,5,23,27,1,21,79,85,78,79,85,71,38,10,71,27,12,2,79,6,2,8,13,9,1,13,9,8,68,19,7,1,71,56,11,21,11,68,6,3,22,2,14,0,30,79,1,31,6,23,19,10,0,73,79,44,2,79,19,6,28,68,16,6,16,15,79,35,8,11,72,71,14,10,3,79,12,2,79,19,6,28,68,32,0,0,73,79,86,71,39,1,71,24,5,20,79,13,9,79,16,15,10,68,5,10,3,14,1,10,14,1,3,71,24,13,19,7,68,32,0,0,73,79,87,71,39,1,71,12,22,2,14,16,2,11,68,2,25,1,21,22,16,15,6,10,0,79,16,15,10,22,2,79,13,20,65,68,41,0,16,15,6,10,0,79,1,31,6,23,19,28,68,19,7,5,19,79,12,2,79,0,14,11,10,64,27,68,10,14,15,2,65,68,83,79,40,14,9,1,71,6,16,20,10,8,1,79,19,6,28,68,14,1,68,15,6,9,75,79,5,9,11,68,19,7,13,20,79,8,14,9,1,71,8,13,17,10,23,71,3,13,0,7,16,71,27,11,71,10,18,2,29,29,8,1,1,73,79,81,71,59,12,2,79,8,14,8,12,19,79,23,15,6,10,2,28,68,19,7,22,8,26,3,15,79,16,15,10,68,3,14,22,12,1,1,20,28,72,71,14,10,3,79,16,15,10,68,3,14,22,12,1,1,20,28,68,4,14,10,71,1,1,17,10,22,71,10,28,19,6,10,0,26,13,20,7,68,14,27,74,71,89,68,32,0,0,71,28,1,9,27,68,45,0,12,9,79,16,15,10,68,37,14,20,19,6,23,19,79,83,71,27,11,71,27,1,11,3,68,2,25,1,21,22,11,9,10,68,6,13,11,18,27,68,19,7,1,71,3,13,0,7,16,71,28,11,71,27,12,6,27,68,2,25,1,21,22,11,9,10,68,10,6,3,15,27,68,5,10,8,14,10,18,2,79,6,2,12,5,18,28,1,71,0,2,71,7,13,20,79,16,2,28,16,14,2,11,9,22,74,71,87,68,45,0,12,9,79,12,14,2,23,2,3,2,71,24,5,20,79,10,8,27,68,19,7,1,71,3,13,0,7,16,92,79,12,2,79,19,6,28,68,8,1,8,30,79,5,71,24,13,19,1,1,20,28,68,19,0,68,19,7,1,71,3,13,0,7,16,73,79,93,71,59,12,2,79,11,9,10,68,16,7,11,71,6,23,71,27,12,2,79,16,21,26,1,71,3,13,0,7,16,75,79,19,15,0,68,0,6,18,2,28,68,11,6,3,15,27,68,19,0,68,2,25,1,21,22,11,9,10,72,71,24,5,20,79,3,8,6,10,0,79,16,8,79,7,8,2,1,71,6,10,19,0,68,19,7,1,71,24,11,21,3,0,73,79,85,87,79,38,18,27,68,6,3,16,15,0,17,0,7,68,19,7,1,71,24,11,21,3,0,71,24,5,20,79,9,6,11,1,71,27,12,21,0,17,0,7,68,15,6,9,75,79,16,15,10,68,16,0,22,11,11,68,3,6,0,9,72,16,71,29,1,4,0,3,9,6,30,2,79,12,14,2,68,16,7,1,9,79,12,2,79,7,6,2,1,73,79,85,86,79,33,17,10,10,71,6,10,71,7,13,20,79,11,16,1,68,11,14,10,3,79,5,9,11,68,6,2,11,9,8,68,15,6,23,71,0,19,9,79,20,2,0,20,11,10,72,71,7,1,71,24,5,20,79,10,8,27,68,6,12,7,2,31,16,2,11,74,71,94,86,71,45,17,19,79,16,8,79,5,11,3,68,16,7,11,71,13,1,11,6,1,17,10,0,71,7,13,10,79,5,9,11,68,6,12,7,2,31,16,2,11,68,15,6,9,75,79,12,2,79,3,6,25,1,71,27,12,2,79,22,14,8,12,19,79,16,8,79,6,2,12,11,10,10,68,4,7,13,11,11,22,2,1,68,8,9,68,32,0,0,73,79,85,84,79,48,15,10,29,71,14,22,2,79,22,2,13,11,21,1,69,71,59,12,14,28,68,14,28,68,9,0,16,71,14,68,23,7,29,20,6,7,6,3,68,5,6,22,19,7,68,21,10,23,18,3,16,14,1,3,71,9,22,8,2,68,15,26,9,6,1,68,23,14,23,20,6,11,9,79,11,21,79,20,11,14,10,75,79,16,15,6,23,71,29,1,5,6,22,19,7,68,4,0,9,2,28,68,1,29,11,10,79,35,8,11,74,86,91,68,52,0,68,19,7,1,71,56,11,21,11,68,5,10,7,6,2,1,71,7,17,10,14,10,71,14,10,3,79,8,14,25,1,3,79,12,2,29,1,71,0,10,71,10,5,21,27,12,71,14,9,8,1,3,71,26,23,73,79,44,2,79,19,6,28,68,1,26,8,11,79,11,1,79,17,9,9,5,14,3,13,9,8,68,11,0,18,2,79,5,9,11,68,1,14,13,19,7,2,18,3,10,2,28,23,73,79,37,9,11,68,16,10,68,15,14,18,2,79,23,2,10,10,71,7,13,20,79,3,11,0,22,30,67,68,19,7,1,71,8,8,8,29,29,71,0,2,71,27,12,2,79,11,9,3,29,71,60,11,9,79,11,1,79,16,15,10,68,33,14,16,15,10,22,73 diff --git a/c++/lib/factor.cpp b/c++/lib/factor.cpp new file mode 100644 index 0000000..a3e0739 --- /dev/null +++ b/c++/lib/factor.cpp @@ -0,0 +1,33 @@ +#include +using namespace std; + +typedef unsigned long long int uu; + +void function(uu n) +{ + uu m, k, t; + t = 1; + m = n; + + while (m > 1) { + k = 2; + while (m % k != 0) k++; + if (t) cout << k; + else cout << "*" << k; + m = m / k; + t = 0; + } + cout << endl; +} + +int main() +{ + cout << "use 0 to exit" << endl; + uu num; + do { + cin >> num; + if(num == 0) break; + function(num); + } while(1); + return 0; +} diff --git a/c++/lib/lint.cpp b/c++/lib/lint.cpp new file mode 100644 index 0000000..6078718 --- /dev/null +++ b/c++/lib/lint.cpp @@ -0,0 +1,502 @@ +#include "lint.hpp" + +void get(vector< complex > x) +{ + for(uint i = x.size() - 1; i >= 0; i--) { + if(i > x.size()) break; + cout << x[i] << " "; + } + cout << endl << endl; +} + +void get(vuint x) +{ + for(uint i = x.size() - 1; i >= 0; i--) { + if(i > x.size()) break; + cout << x[i] << " "; + } + cout << endl << endl; +} + + +lint::lint() { } + +lint::lint(string lintin) +{ + operator =(lintin); +} + +lint::~lint() +{ num.clear(); } + +void lint::operator =(string strin) +{ + sign = 1; + strin = del(strin); + if(strin[0] == '-') { + sign = -1; + strin = strin.substr(1, strin.size() - 1); + } + + /* 整理输入,使其全是数字,并且首位无0 */ + for(uint i = 0; i < strin.size(); i++) + if(strin[i] > '9' || strin[i] < '0') strin[i] = '0'; + + length = strin.size(); + len = (length + unit - 1) / unit; + uint mod = length % unit; + if(num.capacity()) num.clear(); + num.resize(len); + + for(uint i = 0; i < len - 1; i++) + num[i] = atoi(strin.substr(length - (i + 1) * unit, unit).c_str()); + num[len - 1] = atoi(strin.substr(0, (mod == 0) ? unit : mod).c_str()); +} + + +/* 提取十进制数值 */ +string lint::getd() +{ return vtos(num); } + +vuint lint::getvec() +{ + return num; +} + +/* 提取 vector 中相应位置的数字 */ +uint lint::operator [](uint locale) +{ + if(locale >= len) return 0; + else return num[locale]; +} + +/* 提取 vector 的长度 */ +uint lint::getlen() +{ return len; } + +/* 提取整数长度 */ +uint lint::getlength() +{ return length; } + +int lint::getsign() +{ return sign; } + + +/* 定义加法 */ +string lint::operator +(lint opnum) +{ + if(sign * opnum.getsign() == -1) { + if(sign == -1) { + lint abs(getd()); + return opnum - abs; + } else { + lint abs(opnum.getd()); + lint absa(getd()); + return absa - abs; + } + } else { + vuint sumint(1); + vuint sumshort(1); + + if(len >= opnum.getlen()) { + sumint.resize(len); + sumint = getvec(); + sumshort = opnum.getvec(); + } else { + sumint.resize(opnum.getlen()); + sumint = opnum.getvec(); + sumshort = getvec(); + } + + sumint.resize(sumint.size() + 1); + sumint[sumint.size()] = 0; + + uint temp; + + for(uint i = 0; i < sumshort.size(); i++) { + temp = sumint[i] + sumshort[i]; + sumint[i] = temp % cunit; + sumint[i + 1] += temp / cunit; + } + for(uint i = sumshort.size(); i < sumint.size() - 1; i++) { + temp = sumint[i]; + sumint[i] = temp % cunit; + sumint[i + 1] += temp / cunit; + } + + if(sign == -1) return "-" + vtos(sumint); + else return vtos(sumint); + } +} + +string lint::operator -(lint opnum) +{ + if(sign * opnum.getsign() == -1) { + if(sign == 1) return operator +(opnum); + else return "-" + operator +(opnum); + } else { + vuint difint(len >= opnum.getlen() ? len : opnum.getlen()); + vuint small(len >= opnum.getlen() ? opnum.getlen() : len); + + if(compare(opnum) >= 0) { + difint = num; + small = opnum.getvec(); + } else { + difint = opnum.getvec(); + small = num; + } + + for(uint i = small.size() - 1; i >= 0; i--) { + if(i > small.size()) break; + if(difint[i] < small[i]) { + uint temp = i + 1; + while(difint[temp] == 0) { + difint[temp] = cunit - 1; + temp++; + if(temp >= difint.size()) break; + } + if(temp < difint.size()) difint[temp]--; + difint[i] += cunit; + } + difint[i] -= small[i]; + } + + if(sign * compare(opnum) == 1) return vtos(difint); + else return "-" + vtos(difint); + } +} + +/* 定义乘法,用 FFT 实现 */ +string lint::operator *(lint opnum) +{ + uint a_size = len, b_size = opnum.getlen(); + vector< complex > a(a_size), b(b_size); + + for(uint i = 0; i < a_size; i++) a[i].real() = num[i]; + for(uint i = 0; i < b_size; i++) b[i].real() = (opnum[i]); + + uint n; + a_size += b_size; + for (n = a_size; n != (n&-n); n += (n&-n)); + + a.resize(n); + b.resize(n); + + FFT(a, n); + FFT(b, n); + for (uint i = 0; i < n; i++) + a[i] *= b[i]; + IFFT(a, n); + + for (uint i = 0; i < a_size-1; i++) { + a[i + 1] += a[i].real() / 1000.; + a[i] = fmodl(a[i].real(), 1000.L); + a[i].real() += eps; + } + + vuint mulout(n); + for(uint i = 0; i < a.size(); i++) mulout[i] = a[i].real(); + + if(sign * opnum.getsign() == -1) return "-" + vtos(mulout); + else return vtos(mulout); +} + +int lint::operator ==(lint opnum) +{ + if(sign * opnum.getsign() > 0) { + if(sign == 1) return compare(opnum); + if(sign == -1) return -(compare(opnum)); + else return 0; + } else { + if(sign == 1) return 1; + else return -1; + } +} + +int lint::compare(lint opnum) +{ + if(length > opnum.getlength()) return 1; + if(length < opnum.getlength()) return -1; + else { + for(uint i = len - 1; i >= 0; i--) { + if(i > len - 1) break; + if(num[i] > (opnum[i])) return 1; + if(num[i] < (opnum[i])) return -1; + } + return 0; + } +} + +/* 定义除法 */ +string lint::operator /(lint opnum) +{ + if(compare(opnum) == -1) return "0"; + if(compare(opnum) == 0) return "1"; + else { + uint move = len - opnum.getlen(); + vuint devint(move + 1); + vuint open = getvec(); + open.resize(len + 1); + open[len] = 0; + for(uint i = move; i >= 0; i--) { + if(i > move) break; + uint high = i + opnum.getlen() - 1; + if(open.capacity() <= high) { + open.resize(high + 2); + open[high + 1] = 0; + } + uint temp = (open[high] + open[high + 1] * cunit) / opnum.getvec().back() + 2; + vuint tryvec; + int count = 1; + do { + if(--temp > cunit * cunit) temp = 1; + tryvec = vmul(opnum.getvec(), temp, i); + count++; + } while(vless(open, tryvec) && count < 20); + devint[i] = temp; + open = vdif(open, tryvec); + open[open.size()] = 0; + tryvec.clear(); + } + if(sign * opnum.getsign() == 1) return vtos(devint); + else return "-" + vtos(devint); + } +} + + +string lint::operator %(lint opnum) +{ + if(sign == 1 && compare(opnum) == -1) return getd(); + else { + lint div = getd(); + lint q = (div / opnum); + lint mod = (div - (q * opnum)); + if(sign == 1) return mod.getd(); + else return (opnum - mod); + } +} + +vuint lint::getbit() +{ + vuint out(len * 3); + lint opnum = getd(); + lint bit("2"); + uint i; + for(i = 0; i < len * 3; i++) { + if(opnum % bit == "1") out[i] = 1; + else out[i] = 0; + opnum = opnum / bit; + } + while(opnum.getd() != "0") { + out.resize(i + 2); + if(opnum % bit == "1") out[i] = 1; + else out[i] = 0; + opnum = opnum / bit; + i++; + } + return del(out); +} + + +string lint::operator ^(lint opnum) +{ + lint power("1"); + lint base = getd(); + for(uint i = opnum.getbit().size() - 1; i >= 0; i--) { + if(i > opnum.getbit().size()) break; + power = (power * power); + if(opnum.getbit()[i] == 1) power = (power * base); + } + + return del(power.getd()); +} + + + + + + + + + + + + + + + + + + + + + + +/* 消去首位0 */ +string del(string undel) +{ + uint flag = 0; + while(undel.substr(0, 2) == "--") undel = undel.substr(2, undel.size() - 2); + if(undel[0] == '-') { + undel = undel.substr(1, undel.size() - 1); + flag = 1; + } + while(undel.size() > 1 && undel[0] == '0') + undel = undel.substr(1, undel.size() - 1); + if(undel.size() == 1 && undel[0] == '0') return "0"; + if(flag) return "-" + undel; + return undel; +} + +vuint del(vuint undel) +{ + while(undel[undel.size() - 1] == 0) undel.pop_back(); + vuint out(undel.size()); + for(uint i = 0; i < undel.size(); i++) out[i] = undel[i]; + return out; +} + + +/* 整数到字符串的转换 */ +string itos(uint intin) +{ + string strout = ""; + if(intin == 0) return "0"; + while(intin > 0) { + char temp = intin % carry + '0'; + strout = temp + strout; + intin /= carry; + } + return strout; +} + + +/* 向量到字符串的转换 */ +string vtos(vuint vin) +{ + string strout = ""; + string temp = ""; + for(uint i = vin.size() - 1; i >= 0; i--) { + if(i > vin.size() - 1) break; + temp = itos(vin[i] % cunit); + while(temp.size() < unit) temp = "0" + temp; + strout += temp; + } + + return del(strout); +} +/** + 向量转比特流 +string vtobit(vuint vin) +{ + string strout = ""; + for(uint i = vin.size() - 1; i >= 0; i--) { + if(i > vin.size()) break; + if(vin[i]) strout += "1"; + else strout += "0"; + } + return del(strout); +}*/ + +/* 向量和整数的乘法 */ +vuint vmul(vuint op, uint opnum, uint power = 0) +{ + if(power) { + op.resize(op.size() + power); + for(uint i = op.size() - 1; i >= power; i--) { + if(i > op.size()) break; + op[i] = op[i - power]; + } + for(uint i = power - 1; i >= 0; i--) { + if(i > op.size()) break; + op[i] = 0; + } + } + lint big(vtos(op)); + lint small(itos(opnum)); + lint out(big * small); + return out.getvec(); +} + + +/* 向量减法 */ +vuint vdif(vuint big, vuint small) +{ + lint bigint(vtos(big)); + lint smallint(vtos(small)); + if(bigint.compare(smallint) == -1) return big; + else { + lint out(bigint - smallint); + return out.getvec(); + } +} + +/* 比较大小 */ +uint vless(vuint big, vuint small) +{ + lint bigint(vtos(big)); + lint smallint(vtos(small)); + if(bigint.compare(smallint) == -1) return 1; + else return 0; +} + +/* 快速傅立叶变换 */ +void FFT(vector< complex > &x, uint n) +{ + uint i,j,k,t; + + for (i = 0; i < n; ++i) { + j = 0; + for (t = i, k = n; k /= 2; t /= 2) + j = j*2+t%2; + if (j > i) swap(x[j], x[i]); + } + + for (k = 2; k <= n; k *= 2) { + const complex omega_unit(cosl(2*PI/k), sinl(2*PI/k)); + for (i = 0; i < n; i += k) { + complex omega(1, 0); + for (j = 0; j < k/2; ++j) { + complex t = omega*x[i+j+k/2]; + x[i+j+k/2] = x[i+j]-t; + x[i+j] += t; + omega *= omega_unit; + } + } + } +} + +void IFFT(vector< complex > &x, uint n) +{ uint i,j,k,t; + for (i = 0; i < n; ++i) { + j = 0; + for (t = i, k = n; k /= 2; t /= 2) + j = j*2+t%2; + if (j > i) swap(x[j], x[i]); + } + for (k = 2; k <= n; k *= 2) { + const complex omega_unit(cosl(-2*PI/k), sinl(-2*PI/k)); + for (i = 0; i < n; i += k) { + complex omega(1, 0); + for (j = 0; j < k/2; ++j) { + complex t = omega*x[i+j+k/2]; + x[i+j+k/2] = x[i+j]-t; + x[i+j] += t; + omega *= omega_unit; + } + } + } + for (i = 0; i < n; ++i) + x[i] /= n; +} + + +/* 求两数最大公约数 */ +string gcd(lint a, lint b) +{ + if(b.getd() == "0") return a.getd(); + else { + lint newb = a % b; + return gcd(b, newb); + } +} diff --git a/c++/lib/lint.hpp b/c++/lib/lint.hpp new file mode 100644 index 0000000..6751c2c --- /dev/null +++ b/c++/lib/lint.hpp @@ -0,0 +1,69 @@ +#include +#include +#include +#include +#include +#include +#include +#include +using namespace std; + +#define unit 3 +#define carry 10 +#define cunit 1000 +#define eps 0.00001 +typedef unsigned int uint; +typedef vector vuint; +const long double PI = 3.1415926535897932384626433832795L; + + +string del(string);//除去字符串前位多余负号和0 +vuint del(vuint);//除去向量前位多余0 +string itos(uint);//整数转字符串 +string vtos(vuint);//向量转字符串 +//string vtobit(vuint);//向量转比特流 +uint vless(vuint, vuint);//前者是否小于后者 +vuint vmul(vuint, uint, uint);//向量与整数乘法 +vuint vdif(vuint, vuint);//向量做差 +void FFT(vector< complex > &, uint); +void IFFT(vector< complex > &, uint); + + + +/* class */ +class lint { + public: + lint(); + lint(string); + ~lint(); + + string getd();//获得十进制无符号整数 + vuint getvec();//获得整数向量 + vuint getbit();//获得二进制向量 + uint operator [](uint);//获得整数向量中的元素 + uint getlen();//获得向量长度 + uint getlength();//获得无符号整数长度 + int getsign();//获得符号 + + int compare(lint);//比较无符号整数大小 + int operator ==(lint);//比较有符号整数大小 + /*以下返回的都是有符号整数*/ + void operator =(string); + string operator +(lint); + string operator *(lint); + string operator -(lint); + string operator /(lint); + string operator ^(lint); + /*以下返回无符号整数*/ + string operator %(lint); + + + + private: + uint len;//向量长度 + uint length;//数字部分长度 + vuint num;//整数组向量 + int sign;//符号 +}; + +string gcd(lint, lint);//求两数最大公约数 diff --git a/c++/lib/names.txt b/c++/lib/names.txt new file mode 100644 index 0000000..7b8986b --- /dev/null +++ b/c++/lib/names.txt @@ -0,0 +1 @@ +"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL","RUTH","SHARON","MICHELLE","LAURA","SARAH","KIMBERLY","DEBORAH","JESSICA","SHIRLEY","CYNTHIA","ANGELA","MELISSA","BRENDA","AMY","ANNA","REBECCA","VIRGINIA","KATHLEEN","PAMELA","MARTHA","DEBRA","AMANDA","STEPHANIE","CAROLYN","CHRISTINE","MARIE","JANET","CATHERINE","FRANCES","ANN","JOYCE","DIANE","ALICE","JULIE","HEATHER","TERESA","DORIS","GLORIA","EVELYN","JEAN","CHERYL","MILDRED","KATHERINE","JOAN","ASHLEY","JUDITH","ROSE","JANICE","KELLY","NICOLE","JUDY","CHRISTINA","KATHY","THERESA","BEVERLY","DENISE","TAMMY","IRENE","JANE","LORI","RACHEL","MARILYN","ANDREA","KATHRYN","LOUISE","SARA","ANNE","JACQUELINE","WANDA","BONNIE","JULIA","RUBY","LOIS","TINA","PHYLLIS","NORMA","PAULA","DIANA","ANNIE","LILLIAN","EMILY","ROBIN","PEGGY","CRYSTAL","GLADYS","RITA","DAWN","CONNIE","FLORENCE","TRACY","EDNA","TIFFANY","CARMEN","ROSA","CINDY","GRACE","WENDY","VICTORIA","EDITH","KIM","SHERRY","SYLVIA","JOSEPHINE","THELMA","SHANNON","SHEILA","ETHEL","ELLEN","ELAINE","MARJORIE","CARRIE","CHARLOTTE","MONICA","ESTHER","PAULINE","EMMA","JUANITA","ANITA","RHONDA","HAZEL","AMBER","EVA","DEBBIE","APRIL","LESLIE","CLARA","LUCILLE","JAMIE","JOANNE","ELEANOR","VALERIE","DANIELLE","MEGAN","ALICIA","SUZANNE","MICHELE","GAIL","BERTHA","DARLENE","VERONICA","JILL","ERIN","GERALDINE","LAUREN","CATHY","JOANN","LORRAINE","LYNN","SALLY","REGINA","ERICA","BEATRICE","DOLORES","BERNICE","AUDREY","YVONNE","ANNETTE","JUNE","SAMANTHA","MARION","DANA","STACY","ANA","RENEE","IDA","VIVIAN","ROBERTA","HOLLY","BRITTANY","MELANIE","LORETTA","YOLANDA","JEANETTE","LAURIE","KATIE","KRISTEN","VANESSA","ALMA","SUE","ELSIE","BETH","JEANNE","VICKI","CARLA","TARA","ROSEMARY","EILEEN","TERRI","GERTRUDE","LUCY","TONYA","ELLA","STACEY","WILMA","GINA","KRISTIN","JESSIE","NATALIE","AGNES","VERA","WILLIE","CHARLENE","BESSIE","DELORES","MELINDA","PEARL","ARLENE","MAUREEN","COLLEEN","ALLISON","TAMARA","JOY","GEORGIA","CONSTANCE","LILLIE","CLAUDIA","JACKIE","MARCIA","TANYA","NELLIE","MINNIE","MARLENE","HEIDI","GLENDA","LYDIA","VIOLA","COURTNEY","MARIAN","STELLA","CAROLINE","DORA","JO","VICKIE","MATTIE","TERRY","MAXINE","IRMA","MABEL","MARSHA","MYRTLE","LENA","CHRISTY","DEANNA","PATSY","HILDA","GWENDOLYN","JENNIE","NORA","MARGIE","NINA","CASSANDRA","LEAH","PENNY","KAY","PRISCILLA","NAOMI","CAROLE","BRANDY","OLGA","BILLIE","DIANNE","TRACEY","LEONA","JENNY","FELICIA","SONIA","MIRIAM","VELMA","BECKY","BOBBIE","VIOLET","KRISTINA","TONI","MISTY","MAE","SHELLY","DAISY","RAMONA","SHERRI","ERIKA","KATRINA","CLAIRE","LINDSEY","LINDSAY","GENEVA","GUADALUPE","BELINDA","MARGARITA","SHERYL","CORA","FAYE","ADA","NATASHA","SABRINA","ISABEL","MARGUERITE","HATTIE","HARRIET","MOLLY","CECILIA","KRISTI","BRANDI","BLANCHE","SANDY","ROSIE","JOANNA","IRIS","EUNICE","ANGIE","INEZ","LYNDA","MADELINE","AMELIA","ALBERTA","GENEVIEVE","MONIQUE","JODI","JANIE","MAGGIE","KAYLA","SONYA","JAN","LEE","KRISTINE","CANDACE","FANNIE","MARYANN","OPAL","ALISON","YVETTE","MELODY","LUZ","SUSIE","OLIVIA","FLORA","SHELLEY","KRISTY","MAMIE","LULA","LOLA","VERNA","BEULAH","ANTOINETTE","CANDICE","JUANA","JEANNETTE","PAM","KELLI","HANNAH","WHITNEY","BRIDGET","KARLA","CELIA","LATOYA","PATTY","SHELIA","GAYLE","DELLA","VICKY","LYNNE","SHERI","MARIANNE","KARA","JACQUELYN","ERMA","BLANCA","MYRA","LETICIA","PAT","KRISTA","ROXANNE","ANGELICA","JOHNNIE","ROBYN","FRANCIS","ADRIENNE","ROSALIE","ALEXANDRA","BROOKE","BETHANY","SADIE","BERNADETTE","TRACI","JODY","KENDRA","JASMINE","NICHOLE","RACHAEL","CHELSEA","MABLE","ERNESTINE","MURIEL","MARCELLA","ELENA","KRYSTAL","ANGELINA","NADINE","KARI","ESTELLE","DIANNA","PAULETTE","LORA","MONA","DOREEN","ROSEMARIE","ANGEL","DESIREE","ANTONIA","HOPE","GINGER","JANIS","BETSY","CHRISTIE","FREDA","MERCEDES","MEREDITH","LYNETTE","TERI","CRISTINA","EULA","LEIGH","MEGHAN","SOPHIA","ELOISE","ROCHELLE","GRETCHEN","CECELIA","RAQUEL","HENRIETTA","ALYSSA","JANA","KELLEY","GWEN","KERRY","JENNA","TRICIA","LAVERNE","OLIVE","ALEXIS","TASHA","SILVIA","ELVIRA","CASEY","DELIA","SOPHIE","KATE","PATTI","LORENA","KELLIE","SONJA","LILA","LANA","DARLA","MAY","MINDY","ESSIE","MANDY","LORENE","ELSA","JOSEFINA","JEANNIE","MIRANDA","DIXIE","LUCIA","MARTA","FAITH","LELA","JOHANNA","SHARI","CAMILLE","TAMI","SHAWNA","ELISA","EBONY","MELBA","ORA","NETTIE","TABITHA","OLLIE","JAIME","WINIFRED","KRISTIE","MARINA","ALISHA","AIMEE","RENA","MYRNA","MARLA","TAMMIE","LATASHA","BONITA","PATRICE","RONDA","SHERRIE","ADDIE","FRANCINE","DELORIS","STACIE","ADRIANA","CHERI","SHELBY","ABIGAIL","CELESTE","JEWEL","CARA","ADELE","REBEKAH","LUCINDA","DORTHY","CHRIS","EFFIE","TRINA","REBA","SHAWN","SALLIE","AURORA","LENORA","ETTA","LOTTIE","KERRI","TRISHA","NIKKI","ESTELLA","FRANCISCA","JOSIE","TRACIE","MARISSA","KARIN","BRITTNEY","JANELLE","LOURDES","LAUREL","HELENE","FERN","ELVA","CORINNE","KELSEY","INA","BETTIE","ELISABETH","AIDA","CAITLIN","INGRID","IVA","EUGENIA","CHRISTA","GOLDIE","CASSIE","MAUDE","JENIFER","THERESE","FRANKIE","DENA","LORNA","JANETTE","LATONYA","CANDY","MORGAN","CONSUELO","TAMIKA","ROSETTA","DEBORA","CHERIE","POLLY","DINA","JEWELL","FAY","JILLIAN","DOROTHEA","NELL","TRUDY","ESPERANZA","PATRICA","KIMBERLEY","SHANNA","HELENA","CAROLINA","CLEO","STEFANIE","ROSARIO","OLA","JANINE","MOLLIE","LUPE","ALISA","LOU","MARIBEL","SUSANNE","BETTE","SUSANA","ELISE","CECILE","ISABELLE","LESLEY","JOCELYN","PAIGE","JONI","RACHELLE","LEOLA","DAPHNE","ALTA","ESTER","PETRA","GRACIELA","IMOGENE","JOLENE","KEISHA","LACEY","GLENNA","GABRIELA","KERI","URSULA","LIZZIE","KIRSTEN","SHANA","ADELINE","MAYRA","JAYNE","JACLYN","GRACIE","SONDRA","CARMELA","MARISA","ROSALIND","CHARITY","TONIA","BEATRIZ","MARISOL","CLARICE","JEANINE","SHEENA","ANGELINE","FRIEDA","LILY","ROBBIE","SHAUNA","MILLIE","CLAUDETTE","CATHLEEN","ANGELIA","GABRIELLE","AUTUMN","KATHARINE","SUMMER","JODIE","STACI","LEA","CHRISTI","JIMMIE","JUSTINE","ELMA","LUELLA","MARGRET","DOMINIQUE","SOCORRO","RENE","MARTINA","MARGO","MAVIS","CALLIE","BOBBI","MARITZA","LUCILE","LEANNE","JEANNINE","DEANA","AILEEN","LORIE","LADONNA","WILLA","MANUELA","GALE","SELMA","DOLLY","SYBIL","ABBY","LARA","DALE","IVY","DEE","WINNIE","MARCY","LUISA","JERI","MAGDALENA","OFELIA","MEAGAN","AUDRA","MATILDA","LEILA","CORNELIA","BIANCA","SIMONE","BETTYE","RANDI","VIRGIE","LATISHA","BARBRA","GEORGINA","ELIZA","LEANN","BRIDGETTE","RHODA","HALEY","ADELA","NOLA","BERNADINE","FLOSSIE","ILA","GRETA","RUTHIE","NELDA","MINERVA","LILLY","TERRIE","LETHA","HILARY","ESTELA","VALARIE","BRIANNA","ROSALYN","EARLINE","CATALINA","AVA","MIA","CLARISSA","LIDIA","CORRINE","ALEXANDRIA","CONCEPCION","TIA","SHARRON","RAE","DONA","ERICKA","JAMI","ELNORA","CHANDRA","LENORE","NEVA","MARYLOU","MELISA","TABATHA","SERENA","AVIS","ALLIE","SOFIA","JEANIE","ODESSA","NANNIE","HARRIETT","LORAINE","PENELOPE","MILAGROS","EMILIA","BENITA","ALLYSON","ASHLEE","TANIA","TOMMIE","ESMERALDA","KARINA","EVE","PEARLIE","ZELMA","MALINDA","NOREEN","TAMEKA","SAUNDRA","HILLARY","AMIE","ALTHEA","ROSALINDA","JORDAN","LILIA","ALANA","GAY","CLARE","ALEJANDRA","ELINOR","MICHAEL","LORRIE","JERRI","DARCY","EARNESTINE","CARMELLA","TAYLOR","NOEMI","MARCIE","LIZA","ANNABELLE","LOUISA","EARLENE","MALLORY","CARLENE","NITA","SELENA","TANISHA","KATY","JULIANNE","JOHN","LAKISHA","EDWINA","MARICELA","MARGERY","KENYA","DOLLIE","ROXIE","ROSLYN","KATHRINE","NANETTE","CHARMAINE","LAVONNE","ILENE","KRIS","TAMMI","SUZETTE","CORINE","KAYE","JERRY","MERLE","CHRYSTAL","LINA","DEANNE","LILIAN","JULIANA","ALINE","LUANN","KASEY","MARYANNE","EVANGELINE","COLETTE","MELVA","LAWANDA","YESENIA","NADIA","MADGE","KATHIE","EDDIE","OPHELIA","VALERIA","NONA","MITZI","MARI","GEORGETTE","CLAUDINE","FRAN","ALISSA","ROSEANN","LAKEISHA","SUSANNA","REVA","DEIDRE","CHASITY","SHEREE","CARLY","JAMES","ELVIA","ALYCE","DEIRDRE","GENA","BRIANA","ARACELI","KATELYN","ROSANNE","WENDI","TESSA","BERTA","MARVA","IMELDA","MARIETTA","MARCI","LEONOR","ARLINE","SASHA","MADELYN","JANNA","JULIETTE","DEENA","AURELIA","JOSEFA","AUGUSTA","LILIANA","YOUNG","CHRISTIAN","LESSIE","AMALIA","SAVANNAH","ANASTASIA","VILMA","NATALIA","ROSELLA","LYNNETTE","CORINA","ALFREDA","LEANNA","CAREY","AMPARO","COLEEN","TAMRA","AISHA","WILDA","KARYN","CHERRY","QUEEN","MAURA","MAI","EVANGELINA","ROSANNA","HALLIE","ERNA","ENID","MARIANA","LACY","JULIET","JACKLYN","FREIDA","MADELEINE","MARA","HESTER","CATHRYN","LELIA","CASANDRA","BRIDGETT","ANGELITA","JANNIE","DIONNE","ANNMARIE","KATINA","BERYL","PHOEBE","MILLICENT","KATHERYN","DIANN","CARISSA","MARYELLEN","LIZ","LAURI","HELGA","GILDA","ADRIAN","RHEA","MARQUITA","HOLLIE","TISHA","TAMERA","ANGELIQUE","FRANCESCA","BRITNEY","KAITLIN","LOLITA","FLORINE","ROWENA","REYNA","TWILA","FANNY","JANELL","INES","CONCETTA","BERTIE","ALBA","BRIGITTE","ALYSON","VONDA","PANSY","ELBA","NOELLE","LETITIA","KITTY","DEANN","BRANDIE","LOUELLA","LETA","FELECIA","SHARLENE","LESA","BEVERLEY","ROBERT","ISABELLA","HERMINIA","TERRA","CELINA","TORI","OCTAVIA","JADE","DENICE","GERMAINE","SIERRA","MICHELL","CORTNEY","NELLY","DORETHA","SYDNEY","DEIDRA","MONIKA","LASHONDA","JUDI","CHELSEY","ANTIONETTE","MARGOT","BOBBY","ADELAIDE","NAN","LEEANN","ELISHA","DESSIE","LIBBY","KATHI","GAYLA","LATANYA","MINA","MELLISA","KIMBERLEE","JASMIN","RENAE","ZELDA","ELDA","MA","JUSTINA","GUSSIE","EMILIE","CAMILLA","ABBIE","ROCIO","KAITLYN","JESSE","EDYTHE","ASHLEIGH","SELINA","LAKESHA","GERI","ALLENE","PAMALA","MICHAELA","DAYNA","CARYN","ROSALIA","SUN","JACQULINE","REBECA","MARYBETH","KRYSTLE","IOLA","DOTTIE","BENNIE","BELLE","AUBREY","GRISELDA","ERNESTINA","ELIDA","ADRIANNE","DEMETRIA","DELMA","CHONG","JAQUELINE","DESTINY","ARLEEN","VIRGINA","RETHA","FATIMA","TILLIE","ELEANORE","CARI","TREVA","BIRDIE","WILHELMINA","ROSALEE","MAURINE","LATRICE","YONG","JENA","TARYN","ELIA","DEBBY","MAUDIE","JEANNA","DELILAH","CATRINA","SHONDA","HORTENCIA","THEODORA","TERESITA","ROBBIN","DANETTE","MARYJANE","FREDDIE","DELPHINE","BRIANNE","NILDA","DANNA","CINDI","BESS","IONA","HANNA","ARIEL","WINONA","VIDA","ROSITA","MARIANNA","WILLIAM","RACHEAL","GUILLERMINA","ELOISA","CELESTINE","CAREN","MALISSA","LONA","CHANTEL","SHELLIE","MARISELA","LEORA","AGATHA","SOLEDAD","MIGDALIA","IVETTE","CHRISTEN","ATHENA","JANEL","CHLOE","VEDA","PATTIE","TESSIE","TERA","MARILYNN","LUCRETIA","KARRIE","DINAH","DANIELA","ALECIA","ADELINA","VERNICE","SHIELA","PORTIA","MERRY","LASHAWN","DEVON","DARA","TAWANA","OMA","VERDA","CHRISTIN","ALENE","ZELLA","SANDI","RAFAELA","MAYA","KIRA","CANDIDA","ALVINA","SUZAN","SHAYLA","LYN","LETTIE","ALVA","SAMATHA","ORALIA","MATILDE","MADONNA","LARISSA","VESTA","RENITA","INDIA","DELOIS","SHANDA","PHILLIS","LORRI","ERLINDA","CRUZ","CATHRINE","BARB","ZOE","ISABELL","IONE","GISELA","CHARLIE","VALENCIA","ROXANNA","MAYME","KISHA","ELLIE","MELLISSA","DORRIS","DALIA","BELLA","ANNETTA","ZOILA","RETA","REINA","LAURETTA","KYLIE","CHRISTAL","PILAR","CHARLA","ELISSA","TIFFANI","TANA","PAULINA","LEOTA","BREANNA","JAYME","CARMEL","VERNELL","TOMASA","MANDI","DOMINGA","SANTA","MELODIE","LURA","ALEXA","TAMELA","RYAN","MIRNA","KERRIE","VENUS","NOEL","FELICITA","CRISTY","CARMELITA","BERNIECE","ANNEMARIE","TIARA","ROSEANNE","MISSY","CORI","ROXANA","PRICILLA","KRISTAL","JUNG","ELYSE","HAYDEE","ALETHA","BETTINA","MARGE","GILLIAN","FILOMENA","CHARLES","ZENAIDA","HARRIETTE","CARIDAD","VADA","UNA","ARETHA","PEARLINE","MARJORY","MARCELA","FLOR","EVETTE","ELOUISE","ALINA","TRINIDAD","DAVID","DAMARIS","CATHARINE","CARROLL","BELVA","NAKIA","MARLENA","LUANNE","LORINE","KARON","DORENE","DANITA","BRENNA","TATIANA","SAMMIE","LOUANN","LOREN","JULIANNA","ANDRIA","PHILOMENA","LUCILA","LEONORA","DOVIE","ROMONA","MIMI","JACQUELIN","GAYE","TONJA","MISTI","JOE","GENE","CHASTITY","STACIA","ROXANN","MICAELA","NIKITA","MEI","VELDA","MARLYS","JOHNNA","AURA","LAVERN","IVONNE","HAYLEY","NICKI","MAJORIE","HERLINDA","GEORGE","ALPHA","YADIRA","PERLA","GREGORIA","DANIEL","ANTONETTE","SHELLI","MOZELLE","MARIAH","JOELLE","CORDELIA","JOSETTE","CHIQUITA","TRISTA","LOUIS","LAQUITA","GEORGIANA","CANDI","SHANON","LONNIE","HILDEGARD","CECIL","VALENTINA","STEPHANY","MAGDA","KAROL","GERRY","GABRIELLA","TIANA","ROMA","RICHELLE","RAY","PRINCESS","OLETA","JACQUE","IDELLA","ALAINA","SUZANNA","JOVITA","BLAIR","TOSHA","RAVEN","NEREIDA","MARLYN","KYLA","JOSEPH","DELFINA","TENA","STEPHENIE","SABINA","NATHALIE","MARCELLE","GERTIE","DARLEEN","THEA","SHARONDA","SHANTEL","BELEN","VENESSA","ROSALINA","ONA","GENOVEVA","COREY","CLEMENTINE","ROSALBA","RENATE","RENATA","MI","IVORY","GEORGIANNA","FLOY","DORCAS","ARIANA","TYRA","THEDA","MARIAM","JULI","JESICA","DONNIE","VIKKI","VERLA","ROSELYN","MELVINA","JANNETTE","GINNY","DEBRAH","CORRIE","ASIA","VIOLETA","MYRTIS","LATRICIA","COLLETTE","CHARLEEN","ANISSA","VIVIANA","TWYLA","PRECIOUS","NEDRA","LATONIA","LAN","HELLEN","FABIOLA","ANNAMARIE","ADELL","SHARYN","CHANTAL","NIKI","MAUD","LIZETTE","LINDY","KIA","KESHA","JEANA","DANELLE","CHARLINE","CHANEL","CARROL","VALORIE","LIA","DORTHA","CRISTAL","SUNNY","LEONE","LEILANI","GERRI","DEBI","ANDRA","KESHIA","IMA","EULALIA","EASTER","DULCE","NATIVIDAD","LINNIE","KAMI","GEORGIE","CATINA","BROOK","ALDA","WINNIFRED","SHARLA","RUTHANN","MEAGHAN","MAGDALENE","LISSETTE","ADELAIDA","VENITA","TRENA","SHIRLENE","SHAMEKA","ELIZEBETH","DIAN","SHANTA","MICKEY","LATOSHA","CARLOTTA","WINDY","SOON","ROSINA","MARIANN","LEISA","JONNIE","DAWNA","CATHIE","BILLY","ASTRID","SIDNEY","LAUREEN","JANEEN","HOLLI","FAWN","VICKEY","TERESSA","SHANTE","RUBYE","MARCELINA","CHANDA","CARY","TERESE","SCARLETT","MARTY","MARNIE","LULU","LISETTE","JENIFFER","ELENOR","DORINDA","DONITA","CARMAN","BERNITA","ALTAGRACIA","ALETA","ADRIANNA","ZORAIDA","RONNIE","NICOLA","LYNDSEY","KENDALL","JANINA","CHRISSY","AMI","STARLA","PHYLIS","PHUONG","KYRA","CHARISSE","BLANCH","SANJUANITA","RONA","NANCI","MARILEE","MARANDA","CORY","BRIGETTE","SANJUANA","MARITA","KASSANDRA","JOYCELYN","IRA","FELIPA","CHELSIE","BONNY","MIREYA","LORENZA","KYONG","ILEANA","CANDELARIA","TONY","TOBY","SHERIE","OK","MARK","LUCIE","LEATRICE","LAKESHIA","GERDA","EDIE","BAMBI","MARYLIN","LAVON","HORTENSE","GARNET","EVIE","TRESSA","SHAYNA","LAVINA","KYUNG","JEANETTA","SHERRILL","SHARA","PHYLISS","MITTIE","ANABEL","ALESIA","THUY","TAWANDA","RICHARD","JOANIE","TIFFANIE","LASHANDA","KARISSA","ENRIQUETA","DARIA","DANIELLA","CORINNA","ALANNA","ABBEY","ROXANE","ROSEANNA","MAGNOLIA","LIDA","KYLE","JOELLEN","ERA","CORAL","CARLEEN","TRESA","PEGGIE","NOVELLA","NILA","MAYBELLE","JENELLE","CARINA","NOVA","MELINA","MARQUERITE","MARGARETTE","JOSEPHINA","EVONNE","DEVIN","CINTHIA","ALBINA","TOYA","TAWNYA","SHERITA","SANTOS","MYRIAM","LIZABETH","LISE","KEELY","JENNI","GISELLE","CHERYLE","ARDITH","ARDIS","ALESHA","ADRIANE","SHAINA","LINNEA","KAROLYN","HONG","FLORIDA","FELISHA","DORI","DARCI","ARTIE","ARMIDA","ZOLA","XIOMARA","VERGIE","SHAMIKA","NENA","NANNETTE","MAXIE","LOVIE","JEANE","JAIMIE","INGE","FARRAH","ELAINA","CAITLYN","STARR","FELICITAS","CHERLY","CARYL","YOLONDA","YASMIN","TEENA","PRUDENCE","PENNIE","NYDIA","MACKENZIE","ORPHA","MARVEL","LIZBETH","LAURETTE","JERRIE","HERMELINDA","CAROLEE","TIERRA","MIRIAN","META","MELONY","KORI","JENNETTE","JAMILA","ENA","ANH","YOSHIKO","SUSANNAH","SALINA","RHIANNON","JOLEEN","CRISTINE","ASHTON","ARACELY","TOMEKA","SHALONDA","MARTI","LACIE","KALA","JADA","ILSE","HAILEY","BRITTANI","ZONA","SYBLE","SHERRYL","RANDY","NIDIA","MARLO","KANDICE","KANDI","DEB","DEAN","AMERICA","ALYCIA","TOMMY","RONNA","NORENE","MERCY","JOSE","INGEBORG","GIOVANNA","GEMMA","CHRISTEL","AUDRY","ZORA","VITA","VAN","TRISH","STEPHAINE","SHIRLEE","SHANIKA","MELONIE","MAZIE","JAZMIN","INGA","HOA","HETTIE","GERALYN","FONDA","ESTRELLA","ADELLA","SU","SARITA","RINA","MILISSA","MARIBETH","GOLDA","EVON","ETHELYN","ENEDINA","CHERISE","CHANA","VELVA","TAWANNA","SADE","MIRTA","LI","KARIE","JACINTA","ELNA","DAVINA","CIERRA","ASHLIE","ALBERTHA","TANESHA","STEPHANI","NELLE","MINDI","LU","LORINDA","LARUE","FLORENE","DEMETRA","DEDRA","CIARA","CHANTELLE","ASHLY","SUZY","ROSALVA","NOELIA","LYDA","LEATHA","KRYSTYNA","KRISTAN","KARRI","DARLINE","DARCIE","CINDA","CHEYENNE","CHERRIE","AWILDA","ALMEDA","ROLANDA","LANETTE","JERILYN","GISELE","EVALYN","CYNDI","CLETA","CARIN","ZINA","ZENA","VELIA","TANIKA","PAUL","CHARISSA","THOMAS","TALIA","MARGARETE","LAVONDA","KAYLEE","KATHLENE","JONNA","IRENA","ILONA","IDALIA","CANDIS","CANDANCE","BRANDEE","ANITRA","ALIDA","SIGRID","NICOLETTE","MARYJO","LINETTE","HEDWIG","CHRISTIANA","CASSIDY","ALEXIA","TRESSIE","MODESTA","LUPITA","LITA","GLADIS","EVELIA","DAVIDA","CHERRI","CECILY","ASHELY","ANNABEL","AGUSTINA","WANITA","SHIRLY","ROSAURA","HULDA","EUN","BAILEY","YETTA","VERONA","THOMASINA","SIBYL","SHANNAN","MECHELLE","LUE","LEANDRA","LANI","KYLEE","KANDY","JOLYNN","FERNE","EBONI","CORENE","ALYSIA","ZULA","NADA","MOIRA","LYNDSAY","LORRETTA","JUAN","JAMMIE","HORTENSIA","GAYNELL","CAMERON","ADRIA","VINA","VICENTA","TANGELA","STEPHINE","NORINE","NELLA","LIANA","LESLEE","KIMBERELY","ILIANA","GLORY","FELICA","EMOGENE","ELFRIEDE","EDEN","EARTHA","CARMA","BEA","OCIE","MARRY","LENNIE","KIARA","JACALYN","CARLOTA","ARIELLE","YU","STAR","OTILIA","KIRSTIN","KACEY","JOHNETTA","JOEY","JOETTA","JERALDINE","JAUNITA","ELANA","DORTHEA","CAMI","AMADA","ADELIA","VERNITA","TAMAR","SIOBHAN","RENEA","RASHIDA","OUIDA","ODELL","NILSA","MERYL","KRISTYN","JULIETA","DANICA","BREANNE","AUREA","ANGLEA","SHERRON","ODETTE","MALIA","LORELEI","LIN","LEESA","KENNA","KATHLYN","FIONA","CHARLETTE","SUZIE","SHANTELL","SABRA","RACQUEL","MYONG","MIRA","MARTINE","LUCIENNE","LAVADA","JULIANN","JOHNIE","ELVERA","DELPHIA","CLAIR","CHRISTIANE","CHAROLETTE","CARRI","AUGUSTINE","ASHA","ANGELLA","PAOLA","NINFA","LEDA","LAI","EDA","SUNSHINE","STEFANI","SHANELL","PALMA","MACHELLE","LISSA","KECIA","KATHRYNE","KARLENE","JULISSA","JETTIE","JENNIFFER","HUI","CORRINA","CHRISTOPHER","CAROLANN","ALENA","TESS","ROSARIA","MYRTICE","MARYLEE","LIANE","KENYATTA","JUDIE","JANEY","IN","ELMIRA","ELDORA","DENNA","CRISTI","CATHI","ZAIDA","VONNIE","VIVA","VERNIE","ROSALINE","MARIELA","LUCIANA","LESLI","KARAN","FELICE","DENEEN","ADINA","WYNONA","TARSHA","SHERON","SHASTA","SHANITA","SHANI","SHANDRA","RANDA","PINKIE","PARIS","NELIDA","MARILOU","LYLA","LAURENE","LACI","JOI","JANENE","DOROTHA","DANIELE","DANI","CAROLYNN","CARLYN","BERENICE","AYESHA","ANNELIESE","ALETHEA","THERSA","TAMIKO","RUFINA","OLIVA","MOZELL","MARYLYN","MADISON","KRISTIAN","KATHYRN","KASANDRA","KANDACE","JANAE","GABRIEL","DOMENICA","DEBBRA","DANNIELLE","CHUN","BUFFY","BARBIE","ARCELIA","AJA","ZENOBIA","SHAREN","SHAREE","PATRICK","PAGE","MY","LAVINIA","KUM","KACIE","JACKELINE","HUONG","FELISA","EMELIA","ELEANORA","CYTHIA","CRISTIN","CLYDE","CLARIBEL","CARON","ANASTACIA","ZULMA","ZANDRA","YOKO","TENISHA","SUSANN","SHERILYN","SHAY","SHAWANDA","SABINE","ROMANA","MATHILDA","LINSEY","KEIKO","JOANA","ISELA","GRETTA","GEORGETTA","EUGENIE","DUSTY","DESIRAE","DELORA","CORAZON","ANTONINA","ANIKA","WILLENE","TRACEE","TAMATHA","REGAN","NICHELLE","MICKIE","MAEGAN","LUANA","LANITA","KELSIE","EDELMIRA","BREE","AFTON","TEODORA","TAMIE","SHENA","MEG","LINH","KELI","KACI","DANYELLE","BRITT","ARLETTE","ALBERTINE","ADELLE","TIFFINY","STORMY","SIMONA","NUMBERS","NICOLASA","NICHOL","NIA","NAKISHA","MEE","MAIRA","LOREEN","KIZZY","JOHNNY","JAY","FALLON","CHRISTENE","BOBBYE","ANTHONY","YING","VINCENZA","TANJA","RUBIE","RONI","QUEENIE","MARGARETT","KIMBERLI","IRMGARD","IDELL","HILMA","EVELINA","ESTA","EMILEE","DENNISE","DANIA","CARL","CARIE","ANTONIO","WAI","SANG","RISA","RIKKI","PARTICIA","MUI","MASAKO","MARIO","LUVENIA","LOREE","LONI","LIEN","KEVIN","GIGI","FLORENCIA","DORIAN","DENITA","DALLAS","CHI","BILLYE","ALEXANDER","TOMIKA","SHARITA","RANA","NIKOLE","NEOMA","MARGARITE","MADALYN","LUCINA","LAILA","KALI","JENETTE","GABRIELE","EVELYNE","ELENORA","CLEMENTINA","ALEJANDRINA","ZULEMA","VIOLETTE","VANNESSA","THRESA","RETTA","PIA","PATIENCE","NOELLA","NICKIE","JONELL","DELTA","CHUNG","CHAYA","CAMELIA","BETHEL","ANYA","ANDREW","THANH","SUZANN","SPRING","SHU","MILA","LILLA","LAVERNA","KEESHA","KATTIE","GIA","GEORGENE","EVELINE","ESTELL","ELIZBETH","VIVIENNE","VALLIE","TRUDIE","STEPHANE","MICHEL","MAGALY","MADIE","KENYETTA","KARREN","JANETTA","HERMINE","HARMONY","DRUCILLA","DEBBI","CELESTINA","CANDIE","BRITNI","BECKIE","AMINA","ZITA","YUN","YOLANDE","VIVIEN","VERNETTA","TRUDI","SOMMER","PEARLE","PATRINA","OSSIE","NICOLLE","LOYCE","LETTY","LARISA","KATHARINA","JOSELYN","JONELLE","JENELL","IESHA","HEIDE","FLORINDA","FLORENTINA","FLO","ELODIA","DORINE","BRUNILDA","BRIGID","ASHLI","ARDELLA","TWANA","THU","TARAH","SUNG","SHEA","SHAVON","SHANE","SERINA","RAYNA","RAMONITA","NGA","MARGURITE","LUCRECIA","KOURTNEY","KATI","JESUS","JESENIA","DIAMOND","CRISTA","AYANA","ALICA","ALIA","VINNIE","SUELLEN","ROMELIA","RACHELL","PIPER","OLYMPIA","MICHIKO","KATHALEEN","JOLIE","JESSI","JANESSA","HANA","HA","ELEASE","CARLETTA","BRITANY","SHONA","SALOME","ROSAMOND","REGENA","RAINA","NGOC","NELIA","LOUVENIA","LESIA","LATRINA","LATICIA","LARHONDA","JINA","JACKI","HOLLIS","HOLLEY","EMMY","DEEANN","CORETTA","ARNETTA","VELVET","THALIA","SHANICE","NETA","MIKKI","MICKI","LONNA","LEANA","LASHUNDA","KILEY","JOYE","JACQULYN","IGNACIA","HYUN","HIROKO","HENRY","HENRIETTE","ELAYNE","DELINDA","DARNELL","DAHLIA","COREEN","CONSUELA","CONCHITA","CELINE","BABETTE","AYANNA","ANETTE","ALBERTINA","SKYE","SHAWNEE","SHANEKA","QUIANA","PAMELIA","MIN","MERRI","MERLENE","MARGIT","KIESHA","KIERA","KAYLENE","JODEE","JENISE","ERLENE","EMMIE","ELSE","DARYL","DALILA","DAISEY","CODY","CASIE","BELIA","BABARA","VERSIE","VANESA","SHELBA","SHAWNDA","SAM","NORMAN","NIKIA","NAOMA","MARNA","MARGERET","MADALINE","LAWANA","KINDRA","JUTTA","JAZMINE","JANETT","HANNELORE","GLENDORA","GERTRUD","GARNETT","FREEDA","FREDERICA","FLORANCE","FLAVIA","DENNIS","CARLINE","BEVERLEE","ANJANETTE","VALDA","TRINITY","TAMALA","STEVIE","SHONNA","SHA","SARINA","ONEIDA","MICAH","MERILYN","MARLEEN","LURLINE","LENNA","KATHERIN","JIN","JENI","HAE","GRACIA","GLADY","FARAH","ERIC","ENOLA","EMA","DOMINQUE","DEVONA","DELANA","CECILA","CAPRICE","ALYSHA","ALI","ALETHIA","VENA","THERESIA","TAWNY","SONG","SHAKIRA","SAMARA","SACHIKO","RACHELE","PAMELLA","NICKY","MARNI","MARIEL","MAREN","MALISA","LIGIA","LERA","LATORIA","LARAE","KIMBER","KATHERN","KAREY","JENNEFER","JANETH","HALINA","FREDIA","DELISA","DEBROAH","CIERA","CHIN","ANGELIKA","ANDREE","ALTHA","YEN","VIVAN","TERRESA","TANNA","SUK","SUDIE","SOO","SIGNE","SALENA","RONNI","REBBECCA","MYRTIE","MCKENZIE","MALIKA","MAIDA","LOAN","LEONARDA","KAYLEIGH","FRANCE","ETHYL","ELLYN","DAYLE","CAMMIE","BRITTNI","BIRGIT","AVELINA","ASUNCION","ARIANNA","AKIKO","VENICE","TYESHA","TONIE","TIESHA","TAKISHA","STEFFANIE","SINDY","SANTANA","MEGHANN","MANDA","MACIE","LADY","KELLYE","KELLEE","JOSLYN","JASON","INGER","INDIRA","GLINDA","GLENNIS","FERNANDA","FAUSTINA","ENEIDA","ELICIA","DOT","DIGNA","DELL","ARLETTA","ANDRE","WILLIA","TAMMARA","TABETHA","SHERRELL","SARI","REFUGIO","REBBECA","PAULETTA","NIEVES","NATOSHA","NAKITA","MAMMIE","KENISHA","KAZUKO","KASSIE","GARY","EARLEAN","DAPHINE","CORLISS","CLOTILDE","CAROLYNE","BERNETTA","AUGUSTINA","AUDREA","ANNIS","ANNABELL","YAN","TENNILLE","TAMICA","SELENE","SEAN","ROSANA","REGENIA","QIANA","MARKITA","MACY","LEEANNE","LAURINE","KYM","JESSENIA","JANITA","GEORGINE","GENIE","EMIKO","ELVIE","DEANDRA","DAGMAR","CORIE","COLLEN","CHERISH","ROMAINE","PORSHA","PEARLENE","MICHELINE","MERNA","MARGORIE","MARGARETTA","LORE","KENNETH","JENINE","HERMINA","FREDERICKA","ELKE","DRUSILLA","DORATHY","DIONE","DESIRE","CELENA","BRIGIDA","ANGELES","ALLEGRA","THEO","TAMEKIA","SYNTHIA","STEPHEN","SOOK","SLYVIA","ROSANN","REATHA","RAYE","MARQUETTA","MARGART","LING","LAYLA","KYMBERLY","KIANA","KAYLEEN","KATLYN","KARMEN","JOELLA","IRINA","EMELDA","ELENI","DETRA","CLEMMIE","CHERYLL","CHANTELL","CATHEY","ARNITA","ARLA","ANGLE","ANGELIC","ALYSE","ZOFIA","THOMASINE","TENNIE","SON","SHERLY","SHERLEY","SHARYL","REMEDIOS","PETRINA","NICKOLE","MYUNG","MYRLE","MOZELLA","LOUANNE","LISHA","LATIA","LANE","KRYSTA","JULIENNE","JOEL","JEANENE","JACQUALINE","ISAURA","GWENDA","EARLEEN","DONALD","CLEOPATRA","CARLIE","AUDIE","ANTONIETTA","ALISE","ALEX","VERDELL","VAL","TYLER","TOMOKO","THAO","TALISHA","STEVEN","SO","SHEMIKA","SHAUN","SCARLET","SAVANNA","SANTINA","ROSIA","RAEANN","ODILIA","NANA","MINNA","MAGAN","LYNELLE","LE","KARMA","JOEANN","IVANA","INELL","ILANA","HYE","HONEY","HEE","GUDRUN","FRANK","DREAMA","CRISSY","CHANTE","CARMELINA","ARVILLA","ARTHUR","ANNAMAE","ALVERA","ALEIDA","AARON","YEE","YANIRA","VANDA","TIANNA","TAM","STEFANIA","SHIRA","PERRY","NICOL","NANCIE","MONSERRATE","MINH","MELYNDA","MELANY","MATTHEW","LOVELLA","LAURE","KIRBY","KACY","JACQUELYNN","HYON","GERTHA","FRANCISCO","ELIANA","CHRISTENA","CHRISTEEN","CHARISE","CATERINA","CARLEY","CANDYCE","ARLENA","AMMIE","YANG","WILLETTE","VANITA","TUYET","TINY","SYREETA","SILVA","SCOTT","RONALD","PENNEY","NYLA","MICHAL","MAURICE","MARYAM","MARYA","MAGEN","LUDIE","LOMA","LIVIA","LANELL","KIMBERLIE","JULEE","DONETTA","DIEDRA","DENISHA","DEANE","DAWNE","CLARINE","CHERRYL","BRONWYN","BRANDON","ALLA","VALERY","TONDA","SUEANN","SORAYA","SHOSHANA","SHELA","SHARLEEN","SHANELLE","NERISSA","MICHEAL","MERIDITH","MELLIE","MAYE","MAPLE","MAGARET","LUIS","LILI","LEONILA","LEONIE","LEEANNA","LAVONIA","LAVERA","KRISTEL","KATHEY","KATHE","JUSTIN","JULIAN","JIMMY","JANN","ILDA","HILDRED","HILDEGARDE","GENIA","FUMIKO","EVELIN","ERMELINDA","ELLY","DUNG","DOLORIS","DIONNA","DANAE","BERNEICE","ANNICE","ALIX","VERENA","VERDIE","TRISTAN","SHAWNNA","SHAWANA","SHAUNNA","ROZELLA","RANDEE","RANAE","MILAGRO","LYNELL","LUISE","LOUIE","LOIDA","LISBETH","KARLEEN","JUNITA","JONA","ISIS","HYACINTH","HEDY","GWENN","ETHELENE","ERLINE","EDWARD","DONYA","DOMONIQUE","DELICIA","DANNETTE","CICELY","BRANDA","BLYTHE","BETHANN","ASHLYN","ANNALEE","ALLINE","YUKO","VELLA","TRANG","TOWANDA","TESHA","SHERLYN","NARCISA","MIGUELINA","MERI","MAYBELL","MARLANA","MARGUERITA","MADLYN","LUNA","LORY","LORIANN","LIBERTY","LEONORE","LEIGHANN","LAURICE","LATESHA","LARONDA","KATRICE","KASIE","KARL","KALEY","JADWIGA","GLENNIE","GEARLDINE","FRANCINA","EPIFANIA","DYAN","DORIE","DIEDRE","DENESE","DEMETRICE","DELENA","DARBY","CRISTIE","CLEORA","CATARINA","CARISA","BERNIE","BARBERA","ALMETA","TRULA","TEREASA","SOLANGE","SHEILAH","SHAVONNE","SANORA","ROCHELL","MATHILDE","MARGARETA","MAIA","LYNSEY","LAWANNA","LAUNA","KENA","KEENA","KATIA","JAMEY","GLYNDA","GAYLENE","ELVINA","ELANOR","DANUTA","DANIKA","CRISTEN","CORDIE","COLETTA","CLARITA","CARMON","BRYNN","AZUCENA","AUNDREA","ANGELE","YI","WALTER","VERLIE","VERLENE","TAMESHA","SILVANA","SEBRINA","SAMIRA","REDA","RAYLENE","PENNI","PANDORA","NORAH","NOMA","MIREILLE","MELISSIA","MARYALICE","LARAINE","KIMBERY","KARYL","KARINE","KAM","JOLANDA","JOHANA","JESUSA","JALEESA","JAE","JACQUELYNE","IRISH","ILUMINADA","HILARIA","HANH","GENNIE","FRANCIE","FLORETTA","EXIE","EDDA","DREMA","DELPHA","BEV","BARBAR","ASSUNTA","ARDELL","ANNALISA","ALISIA","YUKIKO","YOLANDO","WONDA","WEI","WALTRAUD","VETA","TEQUILA","TEMEKA","TAMEIKA","SHIRLEEN","SHENITA","PIEDAD","OZELLA","MIRTHA","MARILU","KIMIKO","JULIANE","JENICE","JEN","JANAY","JACQUILINE","HILDE","FE","FAE","EVAN","EUGENE","ELOIS","ECHO","DEVORAH","CHAU","BRINDA","BETSEY","ARMINDA","ARACELIS","APRYL","ANNETT","ALISHIA","VEOLA","USHA","TOSHIKO","THEOLA","TASHIA","TALITHA","SHERY","RUDY","RENETTA","REIKO","RASHEEDA","OMEGA","OBDULIA","MIKA","MELAINE","MEGGAN","MARTIN","MARLEN","MARGET","MARCELINE","MANA","MAGDALEN","LIBRADA","LEZLIE","LEXIE","LATASHIA","LASANDRA","KELLE","ISIDRA","ISA","INOCENCIA","GWYN","FRANCOISE","ERMINIA","ERINN","DIMPLE","DEVORA","CRISELDA","ARMANDA","ARIE","ARIANE","ANGELO","ANGELENA","ALLEN","ALIZA","ADRIENE","ADALINE","XOCHITL","TWANNA","TRAN","TOMIKO","TAMISHA","TAISHA","SUSY","SIU","RUTHA","ROXY","RHONA","RAYMOND","OTHA","NORIKO","NATASHIA","MERRIE","MELVIN","MARINDA","MARIKO","MARGERT","LORIS","LIZZETTE","LEISHA","KAILA","KA","JOANNIE","JERRICA","JENE","JANNET","JANEE","JACINDA","HERTA","ELENORE","DORETTA","DELAINE","DANIELL","CLAUDIE","CHINA","BRITTA","APOLONIA","AMBERLY","ALEASE","YURI","YUK","WEN","WANETA","UTE","TOMI","SHARRI","SANDIE","ROSELLE","REYNALDA","RAGUEL","PHYLICIA","PATRIA","OLIMPIA","ODELIA","MITZIE","MITCHELL","MISS","MINDA","MIGNON","MICA","MENDY","MARIVEL","MAILE","LYNETTA","LAVETTE","LAURYN","LATRISHA","LAKIESHA","KIERSTEN","KARY","JOSPHINE","JOLYN","JETTA","JANISE","JACQUIE","IVELISSE","GLYNIS","GIANNA","GAYNELLE","EMERALD","DEMETRIUS","DANYELL","DANILLE","DACIA","CORALEE","CHER","CEOLA","BRETT","BELL","ARIANNE","ALESHIA","YUNG","WILLIEMAE","TROY","TRINH","THORA","TAI","SVETLANA","SHERIKA","SHEMEKA","SHAUNDA","ROSELINE","RICKI","MELDA","MALLIE","LAVONNA","LATINA","LARRY","LAQUANDA","LALA","LACHELLE","KLARA","KANDIS","JOHNA","JEANMARIE","JAYE","HANG","GRAYCE","GERTUDE","EMERITA","EBONIE","CLORINDA","CHING","CHERY","CAROLA","BREANN","BLOSSOM","BERNARDINE","BECKI","ARLETHA","ARGELIA","ARA","ALITA","YULANDA","YON","YESSENIA","TOBI","TASIA","SYLVIE","SHIRL","SHIRELY","SHERIDAN","SHELLA","SHANTELLE","SACHA","ROYCE","REBECKA","REAGAN","PROVIDENCIA","PAULENE","MISHA","MIKI","MARLINE","MARICA","LORITA","LATOYIA","LASONYA","KERSTIN","KENDA","KEITHA","KATHRIN","JAYMIE","JACK","GRICELDA","GINETTE","ERYN","ELINA","ELFRIEDA","DANYEL","CHEREE","CHANELLE","BARRIE","AVERY","AURORE","ANNAMARIA","ALLEEN","AILENE","AIDE","YASMINE","VASHTI","VALENTINE","TREASA","TORY","TIFFANEY","SHERYLL","SHARIE","SHANAE","SAU","RAISA","PA","NEDA","MITSUKO","MIRELLA","MILDA","MARYANNA","MARAGRET","MABELLE","LUETTA","LORINA","LETISHA","LATARSHA","LANELLE","LAJUANA","KRISSY","KARLY","KARENA","JON","JESSIKA","JERICA","JEANELLE","JANUARY","JALISA","JACELYN","IZOLA","IVEY","GREGORY","EUNA","ETHA","DREW","DOMITILA","DOMINICA","DAINA","CREOLA","CARLI","CAMIE","BUNNY","BRITTNY","ASHANTI","ANISHA","ALEEN","ADAH","YASUKO","WINTER","VIKI","VALRIE","TONA","TINISHA","THI","TERISA","TATUM","TANEKA","SIMONNE","SHALANDA","SERITA","RESSIE","REFUGIA","PAZ","OLENE","NA","MERRILL","MARGHERITA","MANDIE","MAN","MAIRE","LYNDIA","LUCI","LORRIANE","LORETA","LEONIA","LAVONA","LASHAWNDA","LAKIA","KYOKO","KRYSTINA","KRYSTEN","KENIA","KELSI","JUDE","JEANICE","ISOBEL","GEORGIANN","GENNY","FELICIDAD","EILENE","DEON","DELOISE","DEEDEE","DANNIE","CONCEPTION","CLORA","CHERILYN","CHANG","CALANDRA","BERRY","ARMANDINA","ANISA","ULA","TIMOTHY","TIERA","THERESSA","STEPHANIA","SIMA","SHYLA","SHONTA","SHERA","SHAQUITA","SHALA","SAMMY","ROSSANA","NOHEMI","NERY","MORIAH","MELITA","MELIDA","MELANI","MARYLYNN","MARISHA","MARIETTE","MALORIE","MADELENE","LUDIVINA","LORIA","LORETTE","LORALEE","LIANNE","LEON","LAVENIA","LAURINDA","LASHON","KIT","KIMI","KEILA","KATELYNN","KAI","JONE","JOANE","JI","JAYNA","JANELLA","JA","HUE","HERTHA","FRANCENE","ELINORE","DESPINA","DELSIE","DEEDRA","CLEMENCIA","CARRY","CAROLIN","CARLOS","BULAH","BRITTANIE","BOK","BLONDELL","BIBI","BEAULAH","BEATA","ANNITA","AGRIPINA","VIRGEN","VALENE","UN","TWANDA","TOMMYE","TOI","TARRA","TARI","TAMMERA","SHAKIA","SADYE","RUTHANNE","ROCHEL","RIVKA","PURA","NENITA","NATISHA","MING","MERRILEE","MELODEE","MARVIS","LUCILLA","LEENA","LAVETA","LARITA","LANIE","KEREN","ILEEN","GEORGEANN","GENNA","GENESIS","FRIDA","EWA","EUFEMIA","EMELY","ELA","EDYTH","DEONNA","DEADRA","DARLENA","CHANELL","CHAN","CATHERN","CASSONDRA","CASSAUNDRA","BERNARDA","BERNA","ARLINDA","ANAMARIA","ALBERT","WESLEY","VERTIE","VALERI","TORRI","TATYANA","STASIA","SHERISE","SHERILL","SEASON","SCOTTIE","SANDA","RUTHE","ROSY","ROBERTO","ROBBI","RANEE","QUYEN","PEARLY","PALMIRA","ONITA","NISHA","NIESHA","NIDA","NEVADA","NAM","MERLYN","MAYOLA","MARYLOUISE","MARYLAND","MARX","MARTH","MARGENE","MADELAINE","LONDA","LEONTINE","LEOMA","LEIA","LAWRENCE","LAURALEE","LANORA","LAKITA","KIYOKO","KETURAH","KATELIN","KAREEN","JONIE","JOHNETTE","JENEE","JEANETT","IZETTA","HIEDI","HEIKE","HASSIE","HAROLD","GIUSEPPINA","GEORGANN","FIDELA","FERNANDE","ELWANDA","ELLAMAE","ELIZ","DUSTI","DOTTY","CYNDY","CORALIE","CELESTA","ARGENTINA","ALVERTA","XENIA","WAVA","VANETTA","TORRIE","TASHINA","TANDY","TAMBRA","TAMA","STEPANIE","SHILA","SHAUNTA","SHARAN","SHANIQUA","SHAE","SETSUKO","SERAFINA","SANDEE","ROSAMARIA","PRISCILA","OLINDA","NADENE","MUOI","MICHELINA","MERCEDEZ","MARYROSE","MARIN","MARCENE","MAO","MAGALI","MAFALDA","LOGAN","LINN","LANNIE","KAYCE","KAROLINE","KAMILAH","KAMALA","JUSTA","JOLINE","JENNINE","JACQUETTA","IRAIDA","GERALD","GEORGEANNA","FRANCHESCA","FAIRY","EMELINE","ELANE","EHTEL","EARLIE","DULCIE","DALENE","CRIS","CLASSIE","CHERE","CHARIS","CAROYLN","CARMINA","CARITA","BRIAN","BETHANIE","AYAKO","ARICA","AN","ALYSA","ALESSANDRA","AKILAH","ADRIEN","ZETTA","YOULANDA","YELENA","YAHAIRA","XUAN","WENDOLYN","VICTOR","TIJUANA","TERRELL","TERINA","TERESIA","SUZI","SUNDAY","SHERELL","SHAVONDA","SHAUNTE","SHARDA","SHAKITA","SENA","RYANN","RUBI","RIVA","REGINIA","REA","RACHAL","PARTHENIA","PAMULA","MONNIE","MONET","MICHAELE","MELIA","MARINE","MALKA","MAISHA","LISANDRA","LEO","LEKISHA","LEAN","LAURENCE","LAKENDRA","KRYSTIN","KORTNEY","KIZZIE","KITTIE","KERA","KENDAL","KEMBERLY","KANISHA","JULENE","JULE","JOSHUA","JOHANNE","JEFFREY","JAMEE","HAN","HALLEY","GIDGET","GALINA","FREDRICKA","FLETA","FATIMAH","EUSEBIA","ELZA","ELEONORE","DORTHEY","DORIA","DONELLA","DINORAH","DELORSE","CLARETHA","CHRISTINIA","CHARLYN","BONG","BELKIS","AZZIE","ANDERA","AIKO","ADENA","YER","YAJAIRA","WAN","VANIA","ULRIKE","TOSHIA","TIFANY","STEFANY","SHIZUE","SHENIKA","SHAWANNA","SHAROLYN","SHARILYN","SHAQUANA","SHANTAY","SEE","ROZANNE","ROSELEE","RICKIE","REMONA","REANNA","RAELENE","QUINN","PHUNG","PETRONILA","NATACHA","NANCEY","MYRL","MIYOKO","MIESHA","MERIDETH","MARVELLA","MARQUITTA","MARHTA","MARCHELLE","LIZETH","LIBBIE","LAHOMA","LADAWN","KINA","KATHELEEN","KATHARYN","KARISA","KALEIGH","JUNIE","JULIEANN","JOHNSIE","JANEAN","JAIMEE","JACKQUELINE","HISAKO","HERMA","HELAINE","GWYNETH","GLENN","GITA","EUSTOLIA","EMELINA","ELIN","EDRIS","DONNETTE","DONNETTA","DIERDRE","DENAE","DARCEL","CLAUDE","CLARISA","CINDERELLA","CHIA","CHARLESETTA","CHARITA","CELSA","CASSY","CASSI","CARLEE","BRUNA","BRITTANEY","BRANDE","BILLI","BAO","ANTONETTA","ANGLA","ANGELYN","ANALISA","ALANE","WENONA","WENDIE","VERONIQUE","VANNESA","TOBIE","TEMPIE","SUMIKO","SULEMA","SPARKLE","SOMER","SHEBA","SHAYNE","SHARICE","SHANEL","SHALON","SAGE","ROY","ROSIO","ROSELIA","RENAY","REMA","REENA","PORSCHE","PING","PEG","OZIE","ORETHA","ORALEE","ODA","NU","NGAN","NAKESHA","MILLY","MARYBELLE","MARLIN","MARIS","MARGRETT","MARAGARET","MANIE","LURLENE","LILLIA","LIESELOTTE","LAVELLE","LASHAUNDA","LAKEESHA","KEITH","KAYCEE","KALYN","JOYA","JOETTE","JENAE","JANIECE","ILLA","GRISEL","GLAYDS","GENEVIE","GALA","FREDDA","FRED","ELMER","ELEONOR","DEBERA","DEANDREA","DAN","CORRINNE","CORDIA","CONTESSA","COLENE","CLEOTILDE","CHARLOTT","CHANTAY","CECILLE","BEATRIS","AZALEE","ARLEAN","ARDATH","ANJELICA","ANJA","ALFREDIA","ALEISHA","ADAM","ZADA","YUONNE","XIAO","WILLODEAN","WHITLEY","VENNIE","VANNA","TYISHA","TOVA","TORIE","TONISHA","TILDA","TIEN","TEMPLE","SIRENA","SHERRIL","SHANTI","SHAN","SENAIDA","SAMELLA","ROBBYN","RENDA","REITA","PHEBE","PAULITA","NOBUKO","NGUYET","NEOMI","MOON","MIKAELA","MELANIA","MAXIMINA","MARG","MAISIE","LYNNA","LILLI","LAYNE","LASHAUN","LAKENYA","LAEL","KIRSTIE","KATHLINE","KASHA","KARLYN","KARIMA","JOVAN","JOSEFINE","JENNELL","JACQUI","JACKELYN","HYO","HIEN","GRAZYNA","FLORRIE","FLORIA","ELEONORA","DWANA","DORLA","DONG","DELMY","DEJA","DEDE","DANN","CRYSTA","CLELIA","CLARIS","CLARENCE","CHIEKO","CHERLYN","CHERELLE","CHARMAIN","CHARA","CAMMY","BEE","ARNETTE","ARDELLE","ANNIKA","AMIEE","AMEE","ALLENA","YVONE","YUKI","YOSHIE","YEVETTE","YAEL","WILLETTA","VONCILE","VENETTA","TULA","TONETTE","TIMIKA","TEMIKA","TELMA","TEISHA","TAREN","TA","STACEE","SHIN","SHAWNTA","SATURNINA","RICARDA","POK","PASTY","ONIE","NUBIA","MORA","MIKE","MARIELLE","MARIELLA","MARIANELA","MARDELL","MANY","LUANNA","LOISE","LISABETH","LINDSY","LILLIANA","LILLIAM","LELAH","LEIGHA","LEANORA","LANG","KRISTEEN","KHALILAH","KEELEY","KANDRA","JUNKO","JOAQUINA","JERLENE","JANI","JAMIKA","JAME","HSIU","HERMILA","GOLDEN","GENEVIVE","EVIA","EUGENA","EMMALINE","ELFREDA","ELENE","DONETTE","DELCIE","DEEANNA","DARCEY","CUC","CLARINDA","CIRA","CHAE","CELINDA","CATHERYN","CATHERIN","CASIMIRA","CARMELIA","CAMELLIA","BREANA","BOBETTE","BERNARDINA","BEBE","BASILIA","ARLYNE","AMAL","ALAYNA","ZONIA","ZENIA","YURIKO","YAEKO","WYNELL","WILLOW","WILLENA","VERNIA","TU","TRAVIS","TORA","TERRILYN","TERICA","TENESHA","TAWNA","TAJUANA","TAINA","STEPHNIE","SONA","SOL","SINA","SHONDRA","SHIZUKO","SHERLENE","SHERICE","SHARIKA","ROSSIE","ROSENA","RORY","RIMA","RIA","RHEBA","RENNA","PETER","NATALYA","NANCEE","MELODI","MEDA","MAXIMA","MATHA","MARKETTA","MARICRUZ","MARCELENE","MALVINA","LUBA","LOUETTA","LEIDA","LECIA","LAURAN","LASHAWNA","LAINE","KHADIJAH","KATERINE","KASI","KALLIE","JULIETTA","JESUSITA","JESTINE","JESSIA","JEREMY","JEFFIE","JANYCE","ISADORA","GEORGIANNE","FIDELIA","EVITA","EURA","EULAH","ESTEFANA","ELSY","ELIZABET","ELADIA","DODIE","DION","DIA","DENISSE","DELORAS","DELILA","DAYSI","DAKOTA","CURTIS","CRYSTLE","CONCHA","COLBY","CLARETTA","CHU","CHRISTIA","CHARLSIE","CHARLENA","CARYLON","BETTYANN","ASLEY","ASHLEA","AMIRA","AI","AGUEDA","AGNUS","YUETTE","VINITA","VICTORINA","TYNISHA","TREENA","TOCCARA","TISH","THOMASENA","TEGAN","SOILA","SHILOH","SHENNA","SHARMAINE","SHANTAE","SHANDI","SEPTEMBER","SARAN","SARAI","SANA","SAMUEL","SALLEY","ROSETTE","ROLANDE","REGINE","OTELIA","OSCAR","OLEVIA","NICHOLLE","NECOLE","NAIDA","MYRTA","MYESHA","MITSUE","MINTA","MERTIE","MARGY","MAHALIA","MADALENE","LOVE","LOURA","LOREAN","LEWIS","LESHA","LEONIDA","LENITA","LAVONE","LASHELL","LASHANDRA","LAMONICA","KIMBRA","KATHERINA","KARRY","KANESHA","JULIO","JONG","JENEVA","JAQUELYN","HWA","GILMA","GHISLAINE","GERTRUDIS","FRANSISCA","FERMINA","ETTIE","ETSUKO","ELLIS","ELLAN","ELIDIA","EDRA","DORETHEA","DOREATHA","DENYSE","DENNY","DEETTA","DAINE","CYRSTAL","CORRIN","CAYLA","CARLITA","CAMILA","BURMA","BULA","BUENA","BLAKE","BARABARA","AVRIL","AUSTIN","ALAINE","ZANA","WILHEMINA","WANETTA","VIRGIL","VI","VERONIKA","VERNON","VERLINE","VASILIKI","TONITA","TISA","TEOFILA","TAYNA","TAUNYA","TANDRA","TAKAKO","SUNNI","SUANNE","SIXTA","SHARELL","SEEMA","RUSSELL","ROSENDA","ROBENA","RAYMONDE","PEI","PAMILA","OZELL","NEIDA","NEELY","MISTIE","MICHA","MERISSA","MAURITA","MARYLN","MARYETTA","MARSHALL","MARCELL","MALENA","MAKEDA","MADDIE","LOVETTA","LOURIE","LORRINE","LORILEE","LESTER","LAURENA","LASHAY","LARRAINE","LAREE","LACRESHA","KRISTLE","KRISHNA","KEVA","KEIRA","KAROLE","JOIE","JINNY","JEANNETTA","JAMA","HEIDY","GILBERTE","GEMA","FAVIOLA","EVELYNN","ENDA","ELLI","ELLENA","DIVINA","DAGNY","COLLENE","CODI","CINDIE","CHASSIDY","CHASIDY","CATRICE","CATHERINA","CASSEY","CAROLL","CARLENA","CANDRA","CALISTA","BRYANNA","BRITTENY","BEULA","BARI","AUDRIE","AUDRIA","ARDELIA","ANNELLE","ANGILA","ALONA","ALLYN","DOUGLAS","ROGER","JONATHAN","RALPH","NICHOLAS","BENJAMIN","BRUCE","HARRY","WAYNE","STEVE","HOWARD","ERNEST","PHILLIP","TODD","CRAIG","ALAN","PHILIP","EARL","DANNY","BRYAN","STANLEY","LEONARD","NATHAN","MANUEL","RODNEY","MARVIN","VINCENT","JEFFERY","JEFF","CHAD","JACOB","ALFRED","BRADLEY","HERBERT","FREDERICK","EDWIN","DON","RICKY","RANDALL","BARRY","BERNARD","LEROY","MARCUS","THEODORE","CLIFFORD","MIGUEL","JIM","TOM","CALVIN","BILL","LLOYD","DEREK","WARREN","DARRELL","JEROME","FLOYD","ALVIN","TIM","GORDON","GREG","JORGE","DUSTIN","PEDRO","DERRICK","ZACHARY","HERMAN","GLEN","HECTOR","RICARDO","RICK","BRENT","RAMON","GILBERT","MARC","REGINALD","RUBEN","NATHANIEL","RAFAEL","EDGAR","MILTON","RAUL","BEN","CHESTER","DUANE","FRANKLIN","BRAD","RON","ROLAND","ARNOLD","HARVEY","JARED","ERIK","DARRYL","NEIL","JAVIER","FERNANDO","CLINTON","TED","MATHEW","TYRONE","DARREN","LANCE","KURT","ALLAN","NELSON","GUY","CLAYTON","HUGH","MAX","DWAYNE","DWIGHT","ARMANDO","FELIX","EVERETT","IAN","WALLACE","KEN","BOB","ALFREDO","ALBERTO","DAVE","IVAN","BYRON","ISAAC","MORRIS","CLIFTON","WILLARD","ROSS","ANDY","SALVADOR","KIRK","SERGIO","SETH","KENT","TERRANCE","EDUARDO","TERRENCE","ENRIQUE","WADE","STUART","FREDRICK","ARTURO","ALEJANDRO","NICK","LUTHER","WENDELL","JEREMIAH","JULIUS","OTIS","TREVOR","OLIVER","LUKE","HOMER","GERARD","DOUG","KENNY","HUBERT","LYLE","MATT","ALFONSO","ORLANDO","REX","CARLTON","ERNESTO","NEAL","PABLO","LORENZO","OMAR","WILBUR","GRANT","HORACE","RODERICK","ABRAHAM","WILLIS","RICKEY","ANDRES","CESAR","JOHNATHAN","MALCOLM","RUDOLPH","DAMON","KELVIN","PRESTON","ALTON","ARCHIE","MARCO","WM","PETE","RANDOLPH","GARRY","GEOFFREY","JONATHON","FELIPE","GERARDO","ED","DOMINIC","DELBERT","COLIN","GUILLERMO","EARNEST","LUCAS","BENNY","SPENCER","RODOLFO","MYRON","EDMUND","GARRETT","SALVATORE","CEDRIC","LOWELL","GREGG","SHERMAN","WILSON","SYLVESTER","ROOSEVELT","ISRAEL","JERMAINE","FORREST","WILBERT","LELAND","SIMON","CLARK","IRVING","BRYANT","OWEN","RUFUS","WOODROW","KRISTOPHER","MACK","LEVI","MARCOS","GUSTAVO","JAKE","LIONEL","GILBERTO","CLINT","NICOLAS","ISMAEL","ORVILLE","ERVIN","DEWEY","AL","WILFRED","JOSH","HUGO","IGNACIO","CALEB","TOMAS","SHELDON","ERICK","STEWART","DOYLE","DARREL","ROGELIO","TERENCE","SANTIAGO","ALONZO","ELIAS","BERT","ELBERT","RAMIRO","CONRAD","NOAH","GRADY","PHIL","CORNELIUS","LAMAR","ROLANDO","CLAY","PERCY","DEXTER","BRADFORD","DARIN","AMOS","MOSES","IRVIN","SAUL","ROMAN","RANDAL","TIMMY","DARRIN","WINSTON","BRENDAN","ABEL","DOMINICK","BOYD","EMILIO","ELIJAH","DOMINGO","EMMETT","MARLON","EMANUEL","JERALD","EDMOND","EMIL","DEWAYNE","WILL","OTTO","TEDDY","REYNALDO","BRET","JESS","TRENT","HUMBERTO","EMMANUEL","STEPHAN","VICENTE","LAMONT","GARLAND","MILES","EFRAIN","HEATH","RODGER","HARLEY","ETHAN","ELDON","ROCKY","PIERRE","JUNIOR","FREDDY","ELI","BRYCE","ANTOINE","STERLING","CHASE","GROVER","ELTON","CLEVELAND","DYLAN","CHUCK","DAMIAN","REUBEN","STAN","AUGUST","LEONARDO","JASPER","RUSSEL","ERWIN","BENITO","HANS","MONTE","BLAINE","ERNIE","CURT","QUENTIN","AGUSTIN","MURRAY","JAMAL","ADOLFO","HARRISON","TYSON","BURTON","BRADY","ELLIOTT","WILFREDO","BART","JARROD","VANCE","DENIS","DAMIEN","JOAQUIN","HARLAN","DESMOND","ELLIOT","DARWIN","GREGORIO","BUDDY","XAVIER","KERMIT","ROSCOE","ESTEBAN","ANTON","SOLOMON","SCOTTY","NORBERT","ELVIN","WILLIAMS","NOLAN","ROD","QUINTON","HAL","BRAIN","ROB","ELWOOD","KENDRICK","DARIUS","MOISES","FIDEL","THADDEUS","CLIFF","MARCEL","JACKSON","RAPHAEL","BRYON","ARMAND","ALVARO","JEFFRY","DANE","JOESPH","THURMAN","NED","RUSTY","MONTY","FABIAN","REGGIE","MASON","GRAHAM","ISAIAH","VAUGHN","GUS","LOYD","DIEGO","ADOLPH","NORRIS","MILLARD","ROCCO","GONZALO","DERICK","RODRIGO","WILEY","RIGOBERTO","ALPHONSO","TY","NOE","VERN","REED","JEFFERSON","ELVIS","BERNARDO","MAURICIO","HIRAM","DONOVAN","BASIL","RILEY","NICKOLAS","MAYNARD","SCOT","VINCE","QUINCY","EDDY","SEBASTIAN","FEDERICO","ULYSSES","HERIBERTO","DONNELL","COLE","DAVIS","GAVIN","EMERY","WARD","ROMEO","JAYSON","DANTE","CLEMENT","COY","MAXWELL","JARVIS","BRUNO","ISSAC","DUDLEY","BROCK","SANFORD","CARMELO","BARNEY","NESTOR","STEFAN","DONNY","ART","LINWOOD","BEAU","WELDON","GALEN","ISIDRO","TRUMAN","DELMAR","JOHNATHON","SILAS","FREDERIC","DICK","IRWIN","MERLIN","CHARLEY","MARCELINO","HARRIS","CARLO","TRENTON","KURTIS","HUNTER","AURELIO","WINFRED","VITO","COLLIN","DENVER","CARTER","LEONEL","EMORY","PASQUALE","MOHAMMAD","MARIANO","DANIAL","LANDON","DIRK","BRANDEN","ADAN","BUFORD","GERMAN","WILMER","EMERSON","ZACHERY","FLETCHER","JACQUES","ERROL","DALTON","MONROE","JOSUE","EDWARDO","BOOKER","WILFORD","SONNY","SHELTON","CARSON","THERON","RAYMUNDO","DAREN","HOUSTON","ROBBY","LINCOLN","GENARO","BENNETT","OCTAVIO","CORNELL","HUNG","ARRON","ANTONY","HERSCHEL","GIOVANNI","GARTH","CYRUS","CYRIL","RONNY","LON","FREEMAN","DUNCAN","KENNITH","CARMINE","ERICH","CHADWICK","WILBURN","RUSS","REID","MYLES","ANDERSON","MORTON","JONAS","FOREST","MITCHEL","MERVIN","ZANE","RICH","JAMEL","LAZARO","ALPHONSE","RANDELL","MAJOR","JARRETT","BROOKS","ABDUL","LUCIANO","SEYMOUR","EUGENIO","MOHAMMED","VALENTIN","CHANCE","ARNULFO","LUCIEN","FERDINAND","THAD","EZRA","ALDO","RUBIN","ROYAL","MITCH","EARLE","ABE","WYATT","MARQUIS","LANNY","KAREEM","JAMAR","BORIS","ISIAH","EMILE","ELMO","ARON","LEOPOLDO","EVERETTE","JOSEF","ELOY","RODRICK","REINALDO","LUCIO","JERROD","WESTON","HERSHEL","BARTON","PARKER","LEMUEL","BURT","JULES","GIL","ELISEO","AHMAD","NIGEL","EFREN","ANTWAN","ALDEN","MARGARITO","COLEMAN","DINO","OSVALDO","LES","DEANDRE","NORMAND","KIETH","TREY","NORBERTO","NAPOLEON","JEROLD","FRITZ","ROSENDO","MILFORD","CHRISTOPER","ALFONZO","LYMAN","JOSIAH","BRANT","WILTON","RICO","JAMAAL","DEWITT","BRENTON","OLIN","FOSTER","FAUSTINO","CLAUDIO","JUDSON","GINO","EDGARDO","ALEC","TANNER","JARRED","DONN","TAD","PRINCE","PORFIRIO","ODIS","LENARD","CHAUNCEY","TOD","MEL","MARCELO","KORY","AUGUSTUS","KEVEN","HILARIO","BUD","SAL","ORVAL","MAURO","ZACHARIAH","OLEN","ANIBAL","MILO","JED","DILLON","AMADO","NEWTON","LENNY","RICHIE","HORACIO","BRICE","MOHAMED","DELMER","DARIO","REYES","MAC","JONAH","JERROLD","ROBT","HANK","RUPERT","ROLLAND","KENTON","DAMION","ANTONE","WALDO","FREDRIC","BRADLY","KIP","BURL","WALKER","TYREE","JEFFEREY","AHMED","WILLY","STANFORD","OREN","NOBLE","MOSHE","MIKEL","ENOCH","BRENDON","QUINTIN","JAMISON","FLORENCIO","DARRICK","TOBIAS","HASSAN","GIUSEPPE","DEMARCUS","CLETUS","TYRELL","LYNDON","KEENAN","WERNER","GERALDO","COLUMBUS","CHET","BERTRAM","MARKUS","HUEY","HILTON","DWAIN","DONTE","TYRON","OMER","ISAIAS","HIPOLITO","FERMIN","ADALBERTO","BO","BARRETT","TEODORO","MCKINLEY","MAXIMO","GARFIELD","RALEIGH","LAWERENCE","ABRAM","RASHAD","KING","EMMITT","DARON","SAMUAL","MIQUEL","EUSEBIO","DOMENIC","DARRON","BUSTER","WILBER","RENATO","JC","HOYT","HAYWOOD","EZEKIEL","CHAS","FLORENTINO","ELROY","CLEMENTE","ARDEN","NEVILLE","EDISON","DESHAWN","NATHANIAL","JORDON","DANILO","CLAUD","SHERWOOD","RAYMON","RAYFORD","CRISTOBAL","AMBROSE","TITUS","HYMAN","FELTON","EZEQUIEL","ERASMO","STANTON","LONNY","LEN","IKE","MILAN","LINO","JAROD","HERB","ANDREAS","WALTON","RHETT","PALMER","DOUGLASS","CORDELL","OSWALDO","ELLSWORTH","VIRGILIO","TONEY","NATHANAEL","DEL","BENEDICT","MOSE","JOHNSON","ISREAL","GARRET","FAUSTO","ASA","ARLEN","ZACK","WARNER","MODESTO","FRANCESCO","MANUAL","GAYLORD","GASTON","FILIBERTO","DEANGELO","MICHALE","GRANVILLE","WES","MALIK","ZACKARY","TUAN","ELDRIDGE","CRISTOPHER","CORTEZ","ANTIONE","MALCOM","LONG","KOREY","JOSPEH","COLTON","WAYLON","VON","HOSEA","SHAD","SANTO","RUDOLF","ROLF","REY","RENALDO","MARCELLUS","LUCIUS","KRISTOFER","BOYCE","BENTON","HAYDEN","HARLAND","ARNOLDO","RUEBEN","LEANDRO","KRAIG","JERRELL","JEROMY","HOBERT","CEDRICK","ARLIE","WINFORD","WALLY","LUIGI","KENETH","JACINTO","GRAIG","FRANKLYN","EDMUNDO","SID","PORTER","LEIF","JERAMY","BUCK","WILLIAN","VINCENZO","SHON","LYNWOOD","JERE","HAI","ELDEN","DORSEY","DARELL","BRODERICK","ALONSO" \ No newline at end of file diff --git a/c++/lib/random.h b/c++/lib/random.h new file mode 100644 index 0000000..0665ecc --- /dev/null +++ b/c++/lib/random.h @@ -0,0 +1,31 @@ +#include +#include +#include + +int random(int a_random, int b_random); +double random(double c_random, double d_random, int accu); + +int random(int a_random, int b_random) +{ + if(a_random >= b_random) return 0; + int temp_int_random; + int int_random = 0; + int accu = b_random - a_random; + if(accu < 10000) accu = 10000; + temp_int_random = time(NULL) % (accu - 1) + 1; + for(int i_int_random = 1; i_int_random <= temp_int_random; i_int_random++) + int_random = (int_random + rand()) % accu; + int_random = int_random % (b_random - a_random) + a_random; + return int_random; +} + +double random(double a_random, double b_random, int accu = 4) +{ + if(a_random >= b_random) return 0; + double temp = 0.0; + for(int i = 1; i <= accu; i++) { + temp += double(random(0, 10)) * pow(0.1, double(i)); + } + return temp * (b_random - a_random) + a_random; +} + diff --git a/c++/lib/try.cpp b/c++/lib/try.cpp new file mode 100644 index 0000000..ffeaab5 --- /dev/null +++ b/c++/lib/try.cpp @@ -0,0 +1,23 @@ +#include +#include "lint.cpp" +#include +using namespace std; + +const uint x = 10000 - 1; + +int main() +{ + lint a[3]; + a[0] = "1"; + a[1] = "1"; + a[2] = "0"; + timeb start, end; + ftime(&start); + for(uint i = 1; i <= x; i++) { + a[(i + 1) % 2] = a[i % 2] + a[(i - 1) % 2]; + } + ftime(&end); + cout << a[x % 2].getd() << endl; + cout << (end.time - start.time) * 1000 + end.millitm - start.millitm << endl; + return 0; +} diff --git a/cipher1.txt b/cipher1.txt new file mode 100644 index 0000000..c3ce21e --- /dev/null +++ b/cipher1.txt @@ -0,0 +1 @@ +79,59,12,2,79,35,8,28,20,2,3,68,8,9,68,45,0,12,9,67,68,4,7,5,23,27,1,21,79,85,78,79,85,71,38,10,71,27,12,2,79,6,2,8,13,9,1,13,9,8,68,19,7,1,71,56,11,21,11,68,6,3,22,2,14,0,30,79,1,31,6,23,19,10,0,73,79,44,2,79,19,6,28,68,16,6,16,15,79,35,8,11,72,71,14,10,3,79,12,2,79,19,6,28,68,32,0,0,73,79,86,71,39,1,71,24,5,20,79,13,9,79,16,15,10,68,5,10,3,14,1,10,14,1,3,71,24,13,19,7,68,32,0,0,73,79,87,71,39,1,71,12,22,2,14,16,2,11,68,2,25,1,21,22,16,15,6,10,0,79,16,15,10,22,2,79,13,20,65,68,41,0,16,15,6,10,0,79,1,31,6,23,19,28,68,19,7,5,19,79,12,2,79,0,14,11,10,64,27,68,10,14,15,2,65,68,83,79,40,14,9,1,71,6,16,20,10,8,1,79,19,6,28,68,14,1,68,15,6,9,75,79,5,9,11,68,19,7,13,20,79,8,14,9,1,71,8,13,17,10,23,71,3,13,0,7,16,71,27,11,71,10,18,2,29,29,8,1,1,73,79,81,71,59,12,2,79,8,14,8,12,19,79,23,15,6,10,2,28,68,19,7,22,8,26,3,15,79,16,15,10,68,3,14,22,12,1,1,20,28,72,71,14,10,3,79,16,15,10,68,3,14,22,12,1,1,20,28,68,4,14,10,71,1,1,17,10,22,71,10,28,19,6,10,0,26,13,20,7,68,14,27,74,71,89,68,32,0,0,71,28,1,9,27,68,45,0,12,9,79,16,15,10,68,37,14,20,19,6,23,19,79,83,71,27,11,71,27,1,11,3,68,2,25,1,21,22,11,9,10,68,6,13,11,18,27,68,19,7,1,71,3,13,0,7,16,71,28,11,71,27,12,6,27,68,2,25,1,21,22,11,9,10,68,10,6,3,15,27,68,5,10,8,14,10,18,2,79,6,2,12,5,18,28,1,71,0,2,71,7,13,20,79,16,2,28,16,14,2,11,9,22,74,71,87,68,45,0,12,9,79,12,14,2,23,2,3,2,71,24,5,20,79,10,8,27,68,19,7,1,71,3,13,0,7,16,92,79,12,2,79,19,6,28,68,8,1,8,30,79,5,71,24,13,19,1,1,20,28,68,19,0,68,19,7,1,71,3,13,0,7,16,73,79,93,71,59,12,2,79,11,9,10,68,16,7,11,71,6,23,71,27,12,2,79,16,21,26,1,71,3,13,0,7,16,75,79,19,15,0,68,0,6,18,2,28,68,11,6,3,15,27,68,19,0,68,2,25,1,21,22,11,9,10,72,71,24,5,20,79,3,8,6,10,0,79,16,8,79,7,8,2,1,71,6,10,19,0,68,19,7,1,71,24,11,21,3,0,73,79,85,87,79,38,18,27,68,6,3,16,15,0,17,0,7,68,19,7,1,71,24,11,21,3,0,71,24,5,20,79,9,6,11,1,71,27,12,21,0,17,0,7,68,15,6,9,75,79,16,15,10,68,16,0,22,11,11,68,3,6,0,9,72,16,71,29,1,4,0,3,9,6,30,2,79,12,14,2,68,16,7,1,9,79,12,2,79,7,6,2,1,73,79,85,86,79,33,17,10,10,71,6,10,71,7,13,20,79,11,16,1,68,11,14,10,3,79,5,9,11,68,6,2,11,9,8,68,15,6,23,71,0,19,9,79,20,2,0,20,11,10,72,71,7,1,71,24,5,20,79,10,8,27,68,6,12,7,2,31,16,2,11,74,71,94,86,71,45,17,19,79,16,8,79,5,11,3,68,16,7,11,71,13,1,11,6,1,17,10,0,71,7,13,10,79,5,9,11,68,6,12,7,2,31,16,2,11,68,15,6,9,75,79,12,2,79,3,6,25,1,71,27,12,2,79,22,14,8,12,19,79,16,8,79,6,2,12,11,10,10,68,4,7,13,11,11,22,2,1,68,8,9,68,32,0,0,73,79,85,84,79,48,15,10,29,71,14,22,2,79,22,2,13,11,21,1,69,71,59,12,14,28,68,14,28,68,9,0,16,71,14,68,23,7,29,20,6,7,6,3,68,5,6,22,19,7,68,21,10,23,18,3,16,14,1,3,71,9,22,8,2,68,15,26,9,6,1,68,23,14,23,20,6,11,9,79,11,21,79,20,11,14,10,75,79,16,15,6,23,71,29,1,5,6,22,19,7,68,4,0,9,2,28,68,1,29,11,10,79,35,8,11,74,86,91,68,52,0,68,19,7,1,71,56,11,21,11,68,5,10,7,6,2,1,71,7,17,10,14,10,71,14,10,3,79,8,14,25,1,3,79,12,2,29,1,71,0,10,71,10,5,21,27,12,71,14,9,8,1,3,71,26,23,73,79,44,2,79,19,6,28,68,1,26,8,11,79,11,1,79,17,9,9,5,14,3,13,9,8,68,11,0,18,2,79,5,9,11,68,1,14,13,19,7,2,18,3,10,2,28,23,73,79,37,9,11,68,16,10,68,15,14,18,2,79,23,2,10,10,71,7,13,20,79,3,11,0,22,30,67,68,19,7,1,71,8,8,8,29,29,71,0,2,71,27,12,2,79,11,9,3,29,71,60,11,9,79,11,1,79,16,15,10,68,33,14,16,15,10,22,73 diff --git a/keylog.txt b/keylog.txt new file mode 100644 index 0000000..41f1567 --- /dev/null +++ b/keylog.txt @@ -0,0 +1,50 @@ +319 +680 +180 +690 +129 +620 +762 +689 +762 +318 +368 +710 +720 +710 +629 +168 +160 +689 +716 +731 +736 +729 +316 +729 +729 +710 +769 +290 +719 +680 +318 +389 +162 +289 +162 +718 +729 +319 +790 +680 +890 +362 +319 +760 +316 +729 +380 +319 +728 +716 diff --git a/matrix.txt b/matrix.txt new file mode 100644 index 0000000..f65322a --- /dev/null +++ b/matrix.txt @@ -0,0 +1,80 @@ +4445,2697,5115,718,2209,2212,654,4348,3079,6821,7668,3276,8874,4190,3785,2752,9473,7817,9137,496,7338,3434,7152,4355,4552,7917,7827,2460,2350,691,3514,5880,3145,7633,7199,3783,5066,7487,3285,1084,8985,760,872,8609,8051,1134,9536,5750,9716,9371,7619,5617,275,9721,2997,2698,1887,8825,6372,3014,2113,7122,7050,6775,5948,2758,1219,3539,348,7989,2735,9862,1263,8089,6401,9462,3168,2758,3748,5870 +1096,20,1318,7586,5167,2642,1443,5741,7621,7030,5526,4244,2348,4641,9827,2448,6918,5883,3737,300,7116,6531,567,5997,3971,6623,820,6148,3287,1874,7981,8424,7672,7575,6797,6717,1078,5008,4051,8795,5820,346,1851,6463,2117,6058,3407,8211,117,4822,1317,4377,4434,5925,8341,4800,1175,4173,690,8978,7470,1295,3799,8724,3509,9849,618,3320,7068,9633,2384,7175,544,6583,1908,9983,481,4187,9353,9377 +9607,7385,521,6084,1364,8983,7623,1585,6935,8551,2574,8267,4781,3834,2764,2084,2669,4656,9343,7709,2203,9328,8004,6192,5856,3555,2260,5118,6504,1839,9227,1259,9451,1388,7909,5733,6968,8519,9973,1663,5315,7571,3035,4325,4283,2304,6438,3815,9213,9806,9536,196,5542,6907,2475,1159,5820,9075,9470,2179,9248,1828,4592,9167,3713,4640,47,3637,309,7344,6955,346,378,9044,8635,7466,5036,9515,6385,9230 +7206,3114,7760,1094,6150,5182,7358,7387,4497,955,101,1478,7777,6966,7010,8417,6453,4955,3496,107,449,8271,131,2948,6185,784,5937,8001,6104,8282,4165,3642,710,2390,575,715,3089,6964,4217,192,5949,7006,715,3328,1152,66,8044,4319,1735,146,4818,5456,6451,4113,1063,4781,6799,602,1504,6245,6550,1417,1343,2363,3785,5448,4545,9371,5420,5068,4613,4882,4241,5043,7873,8042,8434,3939,9256,2187 +3620,8024,577,9997,7377,7682,1314,1158,6282,6310,1896,2509,5436,1732,9480,706,496,101,6232,7375,2207,2306,110,6772,3433,2878,8140,5933,8688,1399,2210,7332,6172,6403,7333,4044,2291,1790,2446,7390,8698,5723,3678,7104,1825,2040,140,3982,4905,4160,2200,5041,2512,1488,2268,1175,7588,8321,8078,7312,977,5257,8465,5068,3453,3096,1651,7906,253,9250,6021,8791,8109,6651,3412,345,4778,5152,4883,7505 +1074,5438,9008,2679,5397,5429,2652,3403,770,9188,4248,2493,4361,8327,9587,707,9525,5913,93,1899,328,2876,3604,673,8576,6908,7659,2544,3359,3883,5273,6587,3065,1749,3223,604,9925,6941,2823,8767,7039,3290,3214,1787,7904,3421,7137,9560,8451,2669,9219,6332,1576,5477,6755,8348,4164,4307,2984,4012,6629,1044,2874,6541,4942,903,1404,9125,5160,8836,4345,2581,460,8438,1538,5507,668,3352,2678,6942 +4295,1176,5596,1521,3061,9868,7037,7129,8933,6659,5947,5063,3653,9447,9245,2679,767,714,116,8558,163,3927,8779,158,5093,2447,5782,3967,1716,931,7772,8164,1117,9244,5783,7776,3846,8862,6014,2330,6947,1777,3112,6008,3491,1906,5952,314,4602,8994,5919,9214,3995,5026,7688,6809,5003,3128,2509,7477,110,8971,3982,8539,2980,4689,6343,5411,2992,5270,5247,9260,2269,7474,1042,7162,5206,1232,4556,4757 +510,3556,5377,1406,5721,4946,2635,7847,4251,8293,8281,6351,4912,287,2870,3380,3948,5322,3840,4738,9563,1906,6298,3234,8959,1562,6297,8835,7861,239,6618,1322,2553,2213,5053,5446,4402,6500,5182,8585,6900,5756,9661,903,5186,7687,5998,7997,8081,8955,4835,6069,2621,1581,732,9564,1082,1853,5442,1342,520,1737,3703,5321,4793,2776,1508,1647,9101,2499,6891,4336,7012,3329,3212,1442,9993,3988,4930,7706 +9444,3401,5891,9716,1228,7107,109,3563,2700,6161,5039,4992,2242,8541,7372,2067,1294,3058,1306,320,8881,5756,9326,411,8650,8824,5495,8282,8397,2000,1228,7817,2099,6473,3571,5994,4447,1299,5991,543,7874,2297,1651,101,2093,3463,9189,6872,6118,872,1008,1779,2805,9084,4048,2123,5877,55,3075,1737,9459,4535,6453,3644,108,5982,4437,5213,1340,6967,9943,5815,669,8074,1838,6979,9132,9315,715,5048 +3327,4030,7177,6336,9933,5296,2621,4785,2755,4832,2512,2118,2244,4407,2170,499,7532,9742,5051,7687,970,6924,3527,4694,5145,1306,2165,5940,2425,8910,3513,1909,6983,346,6377,4304,9330,7203,6605,3709,3346,970,369,9737,5811,4427,9939,3693,8436,5566,1977,3728,2399,3985,8303,2492,5366,9802,9193,7296,1033,5060,9144,2766,1151,7629,5169,5995,58,7619,7565,4208,1713,6279,3209,4908,9224,7409,1325,8540 +6882,1265,1775,3648,4690,959,5837,4520,5394,1378,9485,1360,4018,578,9174,2932,9890,3696,116,1723,1178,9355,7063,1594,1918,8574,7594,7942,1547,6166,7888,354,6932,4651,1010,7759,6905,661,7689,6092,9292,3845,9605,8443,443,8275,5163,7720,7265,6356,7779,1798,1754,5225,6661,1180,8024,5666,88,9153,1840,3508,1193,4445,2648,3538,6243,6375,8107,5902,5423,2520,1122,5015,6113,8859,9370,966,8673,2442 +7338,3423,4723,6533,848,8041,7921,8277,4094,5368,7252,8852,9166,2250,2801,6125,8093,5738,4038,9808,7359,9494,601,9116,4946,2702,5573,2921,9862,1462,1269,2410,4171,2709,7508,6241,7522,615,2407,8200,4189,5492,5649,7353,2590,5203,4274,710,7329,9063,956,8371,3722,4253,4785,1194,4828,4717,4548,940,983,2575,4511,2938,1827,2027,2700,1236,841,5760,1680,6260,2373,3851,1841,4968,1172,5179,7175,3509 +4420,1327,3560,2376,6260,2988,9537,4064,4829,8872,9598,3228,1792,7118,9962,9336,4368,9189,6857,1829,9863,6287,7303,7769,2707,8257,2391,2009,3975,4993,3068,9835,3427,341,8412,2134,4034,8511,6421,3041,9012,2983,7289,100,1355,7904,9186,6920,5856,2008,6545,8331,3655,5011,839,8041,9255,6524,3862,8788,62,7455,3513,5003,8413,3918,2076,7960,6108,3638,6999,3436,1441,4858,4181,1866,8731,7745,3744,1000 +356,8296,8325,1058,1277,4743,3850,2388,6079,6462,2815,5620,8495,5378,75,4324,3441,9870,1113,165,1544,1179,2834,562,6176,2313,6836,8839,2986,9454,5199,6888,1927,5866,8760,320,1792,8296,7898,6121,7241,5886,5814,2815,8336,1576,4314,3109,2572,6011,2086,9061,9403,3947,5487,9731,7281,3159,1819,1334,3181,5844,5114,9898,4634,2531,4412,6430,4262,8482,4546,4555,6804,2607,9421,686,8649,8860,7794,6672 +9870,152,1558,4963,8750,4754,6521,6256,8818,5208,5691,9659,8377,9725,5050,5343,2539,6101,1844,9700,7750,8114,5357,3001,8830,4438,199,9545,8496,43,2078,327,9397,106,6090,8181,8646,6414,7499,5450,4850,6273,5014,4131,7639,3913,6571,8534,9703,4391,7618,445,1320,5,1894,6771,7383,9191,4708,9706,6939,7937,8726,9382,5216,3685,2247,9029,8154,1738,9984,2626,9438,4167,6351,5060,29,1218,1239,4785 +192,5213,8297,8974,4032,6966,5717,1179,6523,4679,9513,1481,3041,5355,9303,9154,1389,8702,6589,7818,6336,3539,5538,3094,6646,6702,6266,2759,4608,4452,617,9406,8064,6379,444,5602,4950,1810,8391,1536,316,8714,1178,5182,5863,5110,5372,4954,1978,2971,5680,4863,2255,4630,5723,2168,538,1692,1319,7540,440,6430,6266,7712,7385,5702,620,641,3136,7350,1478,3155,2820,9109,6261,1122,4470,14,8493,2095 +1046,4301,6082,474,4974,7822,2102,5161,5172,6946,8074,9716,6586,9962,9749,5015,2217,995,5388,4402,7652,6399,6539,1349,8101,3677,1328,9612,7922,2879,231,5887,2655,508,4357,4964,3554,5930,6236,7384,4614,280,3093,9600,2110,7863,2631,6626,6620,68,1311,7198,7561,1768,5139,1431,221,230,2940,968,5283,6517,2146,1646,869,9402,7068,8645,7058,1765,9690,4152,2926,9504,2939,7504,6074,2944,6470,7859 +4659,736,4951,9344,1927,6271,8837,8711,3241,6579,7660,5499,5616,3743,5801,4682,9748,8796,779,1833,4549,8138,4026,775,4170,2432,4174,3741,7540,8017,2833,4027,396,811,2871,1150,9809,2719,9199,8504,1224,540,2051,3519,7982,7367,2761,308,3358,6505,2050,4836,5090,7864,805,2566,2409,6876,3361,8622,5572,5895,3280,441,7893,8105,1634,2929,274,3926,7786,6123,8233,9921,2674,5340,1445,203,4585,3837 +5759,338,7444,7968,7742,3755,1591,4839,1705,650,7061,2461,9230,9391,9373,2413,1213,431,7801,4994,2380,2703,6161,6878,8331,2538,6093,1275,5065,5062,2839,582,1014,8109,3525,1544,1569,8622,7944,2905,6120,1564,1839,5570,7579,1318,2677,5257,4418,5601,7935,7656,5192,1864,5886,6083,5580,6202,8869,1636,7907,4759,9082,5854,3185,7631,6854,5872,5632,5280,1431,2077,9717,7431,4256,8261,9680,4487,4752,4286 +1571,1428,8599,1230,7772,4221,8523,9049,4042,8726,7567,6736,9033,2104,4879,4967,6334,6716,3994,1269,8995,6539,3610,7667,6560,6065,874,848,4597,1711,7161,4811,6734,5723,6356,6026,9183,2586,5636,1092,7779,7923,8747,6887,7505,9909,1792,3233,4526,3176,1508,8043,720,5212,6046,4988,709,5277,8256,3642,1391,5803,1468,2145,3970,6301,7767,2359,8487,9771,8785,7520,856,1605,8972,2402,2386,991,1383,5963 +1822,4824,5957,6511,9868,4113,301,9353,6228,2881,2966,6956,9124,9574,9233,1601,7340,973,9396,540,4747,8590,9535,3650,7333,7583,4806,3593,2738,8157,5215,8472,2284,9473,3906,6982,5505,6053,7936,6074,7179,6688,1564,1103,6860,5839,2022,8490,910,7551,7805,881,7024,1855,9448,4790,1274,3672,2810,774,7623,4223,4850,6071,9975,4935,1915,9771,6690,3846,517,463,7624,4511,614,6394,3661,7409,1395,8127 +8738,3850,9555,3695,4383,2378,87,6256,6740,7682,9546,4255,6105,2000,1851,4073,8957,9022,6547,5189,2487,303,9602,7833,1628,4163,6678,3144,8589,7096,8913,5823,4890,7679,1212,9294,5884,2972,3012,3359,7794,7428,1579,4350,7246,4301,7779,7790,3294,9547,4367,3549,1958,8237,6758,3497,3250,3456,6318,1663,708,7714,6143,6890,3428,6853,9334,7992,591,6449,9786,1412,8500,722,5468,1371,108,3939,4199,2535 +7047,4323,1934,5163,4166,461,3544,2767,6554,203,6098,2265,9078,2075,4644,6641,8412,9183,487,101,7566,5622,1975,5726,2920,5374,7779,5631,3753,3725,2672,3621,4280,1162,5812,345,8173,9785,1525,955,5603,2215,2580,5261,2765,2990,5979,389,3907,2484,1232,5933,5871,3304,1138,1616,5114,9199,5072,7442,7245,6472,4760,6359,9053,7876,2564,9404,3043,9026,2261,3374,4460,7306,2326,966,828,3274,1712,3446 +3975,4565,8131,5800,4570,2306,8838,4392,9147,11,3911,7118,9645,4994,2028,6062,5431,2279,8752,2658,7836,994,7316,5336,7185,3289,1898,9689,2331,5737,3403,1124,2679,3241,7748,16,2724,5441,6640,9368,9081,5618,858,4969,17,2103,6035,8043,7475,2181,939,415,1617,8500,8253,2155,7843,7974,7859,1746,6336,3193,2617,8736,4079,6324,6645,8891,9396,5522,6103,1857,8979,3835,2475,1310,7422,610,8345,7615 +9248,5397,5686,2988,3446,4359,6634,9141,497,9176,6773,7448,1907,8454,916,1596,2241,1626,1384,2741,3649,5362,8791,7170,2903,2475,5325,6451,924,3328,522,90,4813,9737,9557,691,2388,1383,4021,1609,9206,4707,5200,7107,8104,4333,9860,5013,1224,6959,8527,1877,4545,7772,6268,621,4915,9349,5970,706,9583,3071,4127,780,8231,3017,9114,3836,7503,2383,1977,4870,8035,2379,9704,1037,3992,3642,1016,4303 +5093,138,4639,6609,1146,5565,95,7521,9077,2272,974,4388,2465,2650,722,4998,3567,3047,921,2736,7855,173,2065,4238,1048,5,6847,9548,8632,9194,5942,4777,7910,8971,6279,7253,2516,1555,1833,3184,9453,9053,6897,7808,8629,4877,1871,8055,4881,7639,1537,7701,2508,7564,5845,5023,2304,5396,3193,2955,1088,3801,6203,1748,3737,1276,13,4120,7715,8552,3047,2921,106,7508,304,1280,7140,2567,9135,5266 +6237,4607,7527,9047,522,7371,4883,2540,5867,6366,5301,1570,421,276,3361,527,6637,4861,2401,7522,5808,9371,5298,2045,5096,5447,7755,5115,7060,8529,4078,1943,1697,1764,5453,7085,960,2405,739,2100,5800,728,9737,5704,5693,1431,8979,6428,673,7540,6,7773,5857,6823,150,5869,8486,684,5816,9626,7451,5579,8260,3397,5322,6920,1879,2127,2884,5478,4977,9016,6165,6292,3062,5671,5968,78,4619,4763 +9905,7127,9390,5185,6923,3721,9164,9705,4341,1031,1046,5127,7376,6528,3248,4941,1178,7889,3364,4486,5358,9402,9158,8600,1025,874,1839,1783,309,9030,1843,845,8398,1433,7118,70,8071,2877,3904,8866,6722,4299,10,1929,5897,4188,600,1889,3325,2485,6473,4474,7444,6992,4846,6166,4441,2283,2629,4352,7775,1101,2214,9985,215,8270,9750,2740,8361,7103,5930,8664,9690,8302,9267,344,2077,1372,1880,9550 +5825,8517,7769,2405,8204,1060,3603,7025,478,8334,1997,3692,7433,9101,7294,7498,9415,5452,3850,3508,6857,9213,6807,4412,7310,854,5384,686,4978,892,8651,3241,2743,3801,3813,8588,6701,4416,6990,6490,3197,6838,6503,114,8343,5844,8646,8694,65,791,5979,2687,2621,2019,8097,1423,3644,9764,4921,3266,3662,5561,2476,8271,8138,6147,1168,3340,1998,9874,6572,9873,6659,5609,2711,3931,9567,4143,7833,8887 +6223,2099,2700,589,4716,8333,1362,5007,2753,2848,4441,8397,7192,8191,4916,9955,6076,3370,6396,6971,3156,248,3911,2488,4930,2458,7183,5455,170,6809,6417,3390,1956,7188,577,7526,2203,968,8164,479,8699,7915,507,6393,4632,1597,7534,3604,618,3280,6061,9793,9238,8347,568,9645,2070,5198,6482,5000,9212,6655,5961,7513,1323,3872,6170,3812,4146,2736,67,3151,5548,2781,9679,7564,5043,8587,1893,4531 +5826,3690,6724,2121,9308,6986,8106,6659,2142,1642,7170,2877,5757,6494,8026,6571,8387,9961,6043,9758,9607,6450,8631,8334,7359,5256,8523,2225,7487,1977,9555,8048,5763,2414,4948,4265,2427,8978,8088,8841,9208,9601,5810,9398,8866,9138,4176,5875,7212,3272,6759,5678,7649,4922,5422,1343,8197,3154,3600,687,1028,4579,2084,9467,4492,7262,7296,6538,7657,7134,2077,1505,7332,6890,8964,4879,7603,7400,5973,739 +1861,1613,4879,1884,7334,966,2000,7489,2123,4287,1472,3263,4726,9203,1040,4103,6075,6049,330,9253,4062,4268,1635,9960,577,1320,3195,9628,1030,4092,4979,6474,6393,2799,6967,8687,7724,7392,9927,2085,3200,6466,8702,265,7646,8665,7986,7266,4574,6587,612,2724,704,3191,8323,9523,3002,704,5064,3960,8209,2027,2758,8393,4875,4641,9584,6401,7883,7014,768,443,5490,7506,1852,2005,8850,5776,4487,4269 +4052,6687,4705,7260,6645,6715,3706,5504,8672,2853,1136,8187,8203,4016,871,1809,1366,4952,9294,5339,6872,2645,6083,7874,3056,5218,7485,8796,7401,3348,2103,426,8572,4163,9171,3176,948,7654,9344,3217,1650,5580,7971,2622,76,2874,880,2034,9929,1546,2659,5811,3754,7096,7436,9694,9960,7415,2164,953,2360,4194,2397,1047,2196,6827,575,784,2675,8821,6802,7972,5996,6699,2134,7577,2887,1412,4349,4380 +4629,2234,6240,8132,7592,3181,6389,1214,266,1910,2451,8784,2790,1127,6932,1447,8986,2492,5476,397,889,3027,7641,5083,5776,4022,185,3364,5701,2442,2840,4160,9525,4828,6602,2614,7447,3711,4505,7745,8034,6514,4907,2605,7753,6958,7270,6936,3006,8968,439,2326,4652,3085,3425,9863,5049,5361,8688,297,7580,8777,7916,6687,8683,7141,306,9569,2384,1500,3346,4601,7329,9040,6097,2727,6314,4501,4974,2829 +8316,4072,2025,6884,3027,1808,5714,7624,7880,8528,4205,8686,7587,3230,1139,7273,6163,6986,3914,9309,1464,9359,4474,7095,2212,7302,2583,9462,7532,6567,1606,4436,8981,5612,6796,4385,5076,2007,6072,3678,8331,1338,3299,8845,4783,8613,4071,1232,6028,2176,3990,2148,3748,103,9453,538,6745,9110,926,3125,473,5970,8728,7072,9062,1404,1317,5139,9862,6496,6062,3338,464,1600,2532,1088,8232,7739,8274,3873 +2341,523,7096,8397,8301,6541,9844,244,4993,2280,7689,4025,4196,5522,7904,6048,2623,9258,2149,9461,6448,8087,7245,1917,8340,7127,8466,5725,6996,3421,5313,512,9164,9837,9794,8369,4185,1488,7210,1524,1016,4620,9435,2478,7765,8035,697,6677,3724,6988,5853,7662,3895,9593,1185,4727,6025,5734,7665,3070,138,8469,6748,6459,561,7935,8646,2378,462,7755,3115,9690,8877,3946,2728,8793,244,6323,8666,4271 +6430,2406,8994,56,1267,3826,9443,7079,7579,5232,6691,3435,6718,5698,4144,7028,592,2627,217,734,6194,8156,9118,58,2640,8069,4127,3285,694,3197,3377,4143,4802,3324,8134,6953,7625,3598,3584,4289,7065,3434,2106,7132,5802,7920,9060,7531,3321,1725,1067,3751,444,5503,6785,7937,6365,4803,198,6266,8177,1470,6390,1606,2904,7555,9834,8667,2033,1723,5167,1666,8546,8152,473,4475,6451,7947,3062,3281 +2810,3042,7759,1741,2275,2609,7676,8640,4117,1958,7500,8048,1757,3954,9270,1971,4796,2912,660,5511,3553,1012,5757,4525,6084,7198,8352,5775,7726,8591,7710,9589,3122,4392,6856,5016,749,2285,3356,7482,9956,7348,2599,8944,495,3462,3578,551,4543,7207,7169,7796,1247,4278,6916,8176,3742,8385,2310,1345,8692,2667,4568,1770,8319,3585,4920,3890,4928,7343,5385,9772,7947,8786,2056,9266,3454,2807,877,2660 +6206,8252,5928,5837,4177,4333,207,7934,5581,9526,8906,1498,8411,2984,5198,5134,2464,8435,8514,8674,3876,599,5327,826,2152,4084,2433,9327,9697,4800,2728,3608,3849,3861,3498,9943,1407,3991,7191,9110,5666,8434,4704,6545,5944,2357,1163,4995,9619,6754,4200,9682,6654,4862,4744,5953,6632,1054,293,9439,8286,2255,696,8709,1533,1844,6441,430,1999,6063,9431,7018,8057,2920,6266,6799,356,3597,4024,6665 +3847,6356,8541,7225,2325,2946,5199,469,5450,7508,2197,9915,8284,7983,6341,3276,3321,16,1321,7608,5015,3362,8491,6968,6818,797,156,2575,706,9516,5344,5457,9210,5051,8099,1617,9951,7663,8253,9683,2670,1261,4710,1068,8753,4799,1228,2621,3275,6188,4699,1791,9518,8701,5932,4275,6011,9877,2933,4182,6059,2930,6687,6682,9771,654,9437,3169,8596,1827,5471,8909,2352,123,4394,3208,8756,5513,6917,2056 +5458,8173,3138,3290,4570,4892,3317,4251,9699,7973,1163,1935,5477,6648,9614,5655,9592,975,9118,2194,7322,8248,8413,3462,8560,1907,7810,6650,7355,2939,4973,6894,3933,3784,3200,2419,9234,4747,2208,2207,1945,2899,1407,6145,8023,3484,5688,7686,2737,3828,3704,9004,5190,9740,8643,8650,5358,4426,1522,1707,3613,9887,6956,2447,2762,833,1449,9489,2573,1080,4167,3456,6809,2466,227,7125,2759,6250,6472,8089 +3266,7025,9756,3914,1265,9116,7723,9788,6805,5493,2092,8688,6592,9173,4431,4028,6007,7131,4446,4815,3648,6701,759,3312,8355,4485,4187,5188,8746,7759,3528,2177,5243,8379,3838,7233,4607,9187,7216,2190,6967,2920,6082,7910,5354,3609,8958,6949,7731,494,8753,8707,1523,4426,3543,7085,647,6771,9847,646,5049,824,8417,5260,2730,5702,2513,9275,4279,2767,8684,1165,9903,4518,55,9682,8963,6005,2102,6523 +1998,8731,936,1479,5259,7064,4085,91,7745,7136,3773,3810,730,8255,2705,2653,9790,6807,2342,355,9344,2668,3690,2028,9679,8102,574,4318,6481,9175,5423,8062,2867,9657,7553,3442,3920,7430,3945,7639,3714,3392,2525,4995,4850,2867,7951,9667,486,9506,9888,781,8866,1702,3795,90,356,1483,4200,2131,6969,5931,486,6880,4404,1084,5169,4910,6567,8335,4686,5043,2614,3352,2667,4513,6472,7471,5720,1616 +8878,1613,1716,868,1906,2681,564,665,5995,2474,7496,3432,9491,9087,8850,8287,669,823,347,6194,2264,2592,7871,7616,8508,4827,760,2676,4660,4881,7572,3811,9032,939,4384,929,7525,8419,5556,9063,662,8887,7026,8534,3111,1454,2082,7598,5726,6687,9647,7608,73,3014,5063,670,5461,5631,3367,9796,8475,7908,5073,1565,5008,5295,4457,1274,4788,1728,338,600,8415,8535,9351,7750,6887,5845,1741,125 +3637,6489,9634,9464,9055,2413,7824,9517,7532,3577,7050,6186,6980,9365,9782,191,870,2497,8498,2218,2757,5420,6468,586,3320,9230,1034,1393,9886,5072,9391,1178,8464,8042,6869,2075,8275,3601,7715,9470,8786,6475,8373,2159,9237,2066,3264,5000,679,355,3069,4073,494,2308,5512,4334,9438,8786,8637,9774,1169,1949,6594,6072,4270,9158,7916,5752,6794,9391,6301,5842,3285,2141,3898,8027,4310,8821,7079,1307 +8497,6681,4732,7151,7060,5204,9030,7157,833,5014,8723,3207,9796,9286,4913,119,5118,7650,9335,809,3675,2597,5144,3945,5090,8384,187,4102,1260,2445,2792,4422,8389,9290,50,1765,1521,6921,8586,4368,1565,5727,7855,2003,4834,9897,5911,8630,5070,1330,7692,7557,7980,6028,5805,9090,8265,3019,3802,698,9149,5748,1965,9658,4417,5994,5584,8226,2937,272,5743,1278,5698,8736,2595,6475,5342,6596,1149,6920 +8188,8009,9546,6310,8772,2500,9846,6592,6872,3857,1307,8125,7042,1544,6159,2330,643,4604,7899,6848,371,8067,2062,3200,7295,1857,9505,6936,384,2193,2190,301,8535,5503,1462,7380,5114,4824,8833,1763,4974,8711,9262,6698,3999,2645,6937,7747,1128,2933,3556,7943,2885,3122,9105,5447,418,2899,5148,3699,9021,9501,597,4084,175,1621,1,1079,6067,5812,4326,9914,6633,5394,4233,6728,9084,1864,5863,1225 +9935,8793,9117,1825,9542,8246,8437,3331,9128,9675,6086,7075,319,1334,7932,3583,7167,4178,1726,7720,695,8277,7887,6359,5912,1719,2780,8529,1359,2013,4498,8072,1129,9998,1147,8804,9405,6255,1619,2165,7491,1,8882,7378,3337,503,5758,4109,3577,985,3200,7615,8058,5032,1080,6410,6873,5496,1466,2412,9885,5904,4406,3605,8770,4361,6205,9193,1537,9959,214,7260,9566,1685,100,4920,7138,9819,5637,976 +3466,9854,985,1078,7222,8888,5466,5379,3578,4540,6853,8690,3728,6351,7147,3134,6921,9692,857,3307,4998,2172,5783,3931,9417,2541,6299,13,787,2099,9131,9494,896,8600,1643,8419,7248,2660,2609,8579,91,6663,5506,7675,1947,6165,4286,1972,9645,3805,1663,1456,8853,5705,9889,7489,1107,383,4044,2969,3343,152,7805,4980,9929,5033,1737,9953,7197,9158,4071,1324,473,9676,3984,9680,3606,8160,7384,5432 +1005,4512,5186,3953,2164,3372,4097,3247,8697,3022,9896,4101,3871,6791,3219,2742,4630,6967,7829,5991,6134,1197,1414,8923,8787,1394,8852,5019,7768,5147,8004,8825,5062,9625,7988,1110,3992,7984,9966,6516,6251,8270,421,3723,1432,4830,6935,8095,9059,2214,6483,6846,3120,1587,6201,6691,9096,9627,6671,4002,3495,9939,7708,7465,5879,6959,6634,3241,3401,2355,9061,2611,7830,3941,2177,2146,5089,7079,519,6351 +7280,8586,4261,2831,7217,3141,9994,9940,5462,2189,4005,6942,9848,5350,8060,6665,7519,4324,7684,657,9453,9296,2944,6843,7499,7847,1728,9681,3906,6353,5529,2822,3355,3897,7724,4257,7489,8672,4356,3983,1948,6892,7415,4153,5893,4190,621,1736,4045,9532,7701,3671,1211,1622,3176,4524,9317,7800,5638,6644,6943,5463,3531,2821,1347,5958,3436,1438,2999,994,850,4131,2616,1549,3465,5946,690,9273,6954,7991 +9517,399,3249,2596,7736,2142,1322,968,7350,1614,468,3346,3265,7222,6086,1661,5317,2582,7959,4685,2807,2917,1037,5698,1529,3972,8716,2634,3301,3412,8621,743,8001,4734,888,7744,8092,3671,8941,1487,5658,7099,2781,99,1932,4443,4756,4652,9328,1581,7855,4312,5976,7255,6480,3996,2748,1973,9731,4530,2790,9417,7186,5303,3557,351,7182,9428,1342,9020,7599,1392,8304,2070,9138,7215,2008,9937,1106,7110 +7444,769,9688,632,1571,6820,8743,4338,337,3366,3073,1946,8219,104,4210,6986,249,5061,8693,7960,6546,1004,8857,5997,9352,4338,6105,5008,2556,6518,6694,4345,3727,7956,20,3954,8652,4424,9387,2035,8358,5962,5304,5194,8650,8282,1256,1103,2138,6679,1985,3653,2770,2433,4278,615,2863,1715,242,3790,2636,6998,3088,1671,2239,957,5411,4595,6282,2881,9974,2401,875,7574,2987,4587,3147,6766,9885,2965 +3287,3016,3619,6818,9073,6120,5423,557,2900,2015,8111,3873,1314,4189,1846,4399,7041,7583,2427,2864,3525,5002,2069,748,1948,6015,2684,438,770,8367,1663,7887,7759,1885,157,7770,4520,4878,3857,1137,3525,3050,6276,5569,7649,904,4533,7843,2199,5648,7628,9075,9441,3600,7231,2388,5640,9096,958,3058,584,5899,8150,1181,9616,1098,8162,6819,8171,1519,1140,7665,8801,2632,1299,9192,707,9955,2710,7314 +1772,2963,7578,3541,3095,1488,7026,2634,6015,4633,4370,2762,1650,2174,909,8158,2922,8467,4198,4280,9092,8856,8835,5457,2790,8574,9742,5054,9547,4156,7940,8126,9824,7340,8840,6574,3547,1477,3014,6798,7134,435,9484,9859,3031,4,1502,4133,1738,1807,4825,463,6343,9701,8506,9822,9555,8688,8168,3467,3234,6318,1787,5591,419,6593,7974,8486,9861,6381,6758,194,3061,4315,2863,4665,3789,2201,1492,4416 +126,8927,6608,5682,8986,6867,1715,6076,3159,788,3140,4744,830,9253,5812,5021,7616,8534,1546,9590,1101,9012,9821,8132,7857,4086,1069,7491,2988,1579,2442,4321,2149,7642,6108,250,6086,3167,24,9528,7663,2685,1220,9196,1397,5776,1577,1730,5481,977,6115,199,6326,2183,3767,5928,5586,7561,663,8649,9688,949,5913,9160,1870,5764,9887,4477,6703,1413,4995,5494,7131,2192,8969,7138,3997,8697,646,1028 +8074,1731,8245,624,4601,8706,155,8891,309,2552,8208,8452,2954,3124,3469,4246,3352,1105,4509,8677,9901,4416,8191,9283,5625,7120,2952,8881,7693,830,4580,8228,9459,8611,4499,1179,4988,1394,550,2336,6089,6872,269,7213,1848,917,6672,4890,656,1478,6536,3165,4743,4990,1176,6211,7207,5284,9730,4738,1549,4986,4942,8645,3698,9429,1439,2175,6549,3058,6513,1574,6988,8333,3406,5245,5431,7140,7085,6407 +7845,4694,2530,8249,290,5948,5509,1588,5940,4495,5866,5021,4626,3979,3296,7589,4854,1998,5627,3926,8346,6512,9608,1918,7070,4747,4182,2858,2766,4606,6269,4107,8982,8568,9053,4244,5604,102,2756,727,5887,2566,7922,44,5986,621,1202,374,6988,4130,3627,6744,9443,4568,1398,8679,397,3928,9159,367,2917,6127,5788,3304,8129,911,2669,1463,9749,264,4478,8940,1109,7309,2462,117,4692,7724,225,2312 +4164,3637,2000,941,8903,39,3443,7172,1031,3687,4901,8082,4945,4515,7204,9310,9349,9535,9940,218,1788,9245,2237,1541,5670,6538,6047,5553,9807,8101,1925,8714,445,8332,7309,6830,5786,5736,7306,2710,3034,1838,7969,6318,7912,2584,2080,7437,6705,2254,7428,820,782,9861,7596,3842,3631,8063,5240,6666,394,4565,7865,4895,9890,6028,6117,4724,9156,4473,4552,602,470,6191,4927,5387,884,3146,1978,3000 +4258,6880,1696,3582,5793,4923,2119,1155,9056,9698,6603,3768,5514,9927,9609,6166,6566,4536,4985,4934,8076,9062,6741,6163,7399,4562,2337,5600,2919,9012,8459,1308,6072,1225,9306,8818,5886,7243,7365,8792,6007,9256,6699,7171,4230,7002,8720,7839,4533,1671,478,7774,1607,2317,5437,4705,7886,4760,6760,7271,3081,2997,3088,7675,6208,3101,6821,6840,122,9633,4900,2067,8546,4549,2091,7188,5605,8599,6758,5229 +7854,5243,9155,3556,8812,7047,2202,1541,5993,4600,4760,713,434,7911,7426,7414,8729,322,803,7960,7563,4908,6285,6291,736,3389,9339,4132,8701,7534,5287,3646,592,3065,7582,2592,8755,6068,8597,1982,5782,1894,2900,6236,4039,6569,3037,5837,7698,700,7815,2491,7272,5878,3083,6778,6639,3589,5010,8313,2581,6617,5869,8402,6808,2951,2321,5195,497,2190,6187,1342,1316,4453,7740,4154,2959,1781,1482,8256 +7178,2046,4419,744,8312,5356,6855,8839,319,2962,5662,47,6307,8662,68,4813,567,2712,9931,1678,3101,8227,6533,4933,6656,92,5846,4780,6256,6361,4323,9985,1231,2175,7178,3034,9744,6155,9165,7787,5836,9318,7860,9644,8941,6480,9443,8188,5928,161,6979,2352,5628,6991,1198,8067,5867,6620,3778,8426,2994,3122,3124,6335,3918,8897,2655,9670,634,1088,1576,8935,7255,474,8166,7417,9547,2886,5560,3842 +6957,3111,26,7530,7143,1295,1744,6057,3009,1854,8098,5405,2234,4874,9447,2620,9303,27,7410,969,40,2966,5648,7596,8637,4238,3143,3679,7187,690,9980,7085,7714,9373,5632,7526,6707,3951,9734,4216,2146,3602,5371,6029,3039,4433,4855,4151,1449,3376,8009,7240,7027,4602,2947,9081,4045,8424,9352,8742,923,2705,4266,3232,2264,6761,363,2651,3383,7770,6730,7856,7340,9679,2158,610,4471,4608,910,6241 +4417,6756,1013,8797,658,8809,5032,8703,7541,846,3357,2920,9817,1745,9980,7593,4667,3087,779,3218,6233,5568,4296,2289,2654,7898,5021,9461,5593,8214,9173,4203,2271,7980,2983,5952,9992,8399,3468,1776,3188,9314,1720,6523,2933,621,8685,5483,8986,6163,3444,9539,4320,155,3992,2828,2150,6071,524,2895,5468,8063,1210,3348,9071,4862,483,9017,4097,6186,9815,3610,5048,1644,1003,9865,9332,2145,1944,2213 +9284,3803,4920,1927,6706,4344,7383,4786,9890,2010,5228,1224,3158,6967,8580,8990,8883,5213,76,8306,2031,4980,5639,9519,7184,5645,7769,3259,8077,9130,1317,3096,9624,3818,1770,695,2454,947,6029,3474,9938,3527,5696,4760,7724,7738,2848,6442,5767,6845,8323,4131,2859,7595,2500,4815,3660,9130,8580,7016,8231,4391,8369,3444,4069,4021,556,6154,627,2778,1496,4206,6356,8434,8491,3816,8231,3190,5575,1015 +3787,7572,1788,6803,5641,6844,1961,4811,8535,9914,9999,1450,8857,738,4662,8569,6679,2225,7839,8618,286,2648,5342,2294,3205,4546,176,8705,3741,6134,8324,8021,7004,5205,7032,6637,9442,5539,5584,4819,5874,5807,8589,6871,9016,983,1758,3786,1519,6241,185,8398,495,3370,9133,3051,4549,9674,7311,9738,3316,9383,2658,2776,9481,7558,619,3943,3324,6491,4933,153,9738,4623,912,3595,7771,7939,1219,4405 +2650,3883,4154,5809,315,7756,4430,1788,4451,1631,6461,7230,6017,5751,138,588,5282,2442,9110,9035,6349,2515,1570,6122,4192,4174,3530,1933,4186,4420,4609,5739,4135,2963,6308,1161,8809,8619,2796,3819,6971,8228,4188,1492,909,8048,2328,6772,8467,7671,9068,2226,7579,6422,7056,8042,3296,2272,3006,2196,7320,3238,3490,3102,37,1293,3212,4767,5041,8773,5794,4456,6174,7279,7054,2835,7053,9088,790,6640 +3101,1057,7057,3826,6077,1025,2955,1224,1114,6729,5902,4698,6239,7203,9423,1804,4417,6686,1426,6941,8071,1029,4985,9010,6122,6597,1622,1574,3513,1684,7086,5505,3244,411,9638,4150,907,9135,829,981,1707,5359,8781,9751,5,9131,3973,7159,1340,6955,7514,7993,6964,8198,1933,2797,877,3993,4453,8020,9349,8646,2779,8679,2961,3547,3374,3510,1129,3568,2241,2625,9138,5974,8206,7669,7678,1833,8700,4480 +4865,9912,8038,8238,782,3095,8199,1127,4501,7280,2112,2487,3626,2790,9432,1475,6312,8277,4827,2218,5806,7132,8752,1468,7471,6386,739,8762,8323,8120,5169,9078,9058,3370,9560,7987,8585,8531,5347,9312,1058,4271,1159,5286,5404,6925,8606,9204,7361,2415,560,586,4002,2644,1927,2824,768,4409,2942,3345,1002,808,4941,6267,7979,5140,8643,7553,9438,7320,4938,2666,4609,2778,8158,6730,3748,3867,1866,7181 +171,3771,7134,8927,4778,2913,3326,2004,3089,7853,1378,1729,4777,2706,9578,1360,5693,3036,1851,7248,2403,2273,8536,6501,9216,613,9671,7131,7719,6425,773,717,8803,160,1114,7554,7197,753,4513,4322,8499,4533,2609,4226,8710,6627,644,9666,6260,4870,5744,7385,6542,6203,7703,6130,8944,5589,2262,6803,6381,7414,6888,5123,7320,9392,9061,6780,322,8975,7050,5089,1061,2260,3199,1150,1865,5386,9699,6501 +3744,8454,6885,8277,919,1923,4001,6864,7854,5519,2491,6057,8794,9645,1776,5714,9786,9281,7538,6916,3215,395,2501,9618,4835,8846,9708,2813,3303,1794,8309,7176,2206,1602,1838,236,4593,2245,8993,4017,10,8215,6921,5206,4023,5932,6997,7801,262,7640,3107,8275,4938,7822,2425,3223,3886,2105,8700,9526,2088,8662,8034,7004,5710,2124,7164,3574,6630,9980,4242,2901,9471,1491,2117,4562,1130,9086,4117,6698 +2810,2280,2331,1170,4554,4071,8387,1215,2274,9848,6738,1604,7281,8805,439,1298,8318,7834,9426,8603,6092,7944,1309,8828,303,3157,4638,4439,9175,1921,4695,7716,1494,1015,1772,5913,1127,1952,1950,8905,4064,9890,385,9357,7945,5035,7082,5369,4093,6546,5187,5637,2041,8946,1758,7111,6566,1027,1049,5148,7224,7248,296,6169,375,1656,7993,2816,3717,4279,4675,1609,3317,42,6201,3100,3144,163,9530,4531 +7096,6070,1009,4988,3538,5801,7149,3063,2324,2912,7911,7002,4338,7880,2481,7368,3516,2016,7556,2193,1388,3865,8125,4637,4096,8114,750,3144,1938,7002,9343,4095,1392,4220,3455,6969,9647,1321,9048,1996,1640,6626,1788,314,9578,6630,2813,6626,4981,9908,7024,4355,3201,3521,3864,3303,464,1923,595,9801,3391,8366,8084,9374,1041,8807,9085,1892,9431,8317,9016,9221,8574,9981,9240,5395,2009,6310,2854,9255 +8830,3145,2960,9615,8220,6061,3452,2918,6481,9278,2297,3385,6565,7066,7316,5682,107,7646,4466,68,1952,9603,8615,54,7191,791,6833,2560,693,9733,4168,570,9127,9537,1925,8287,5508,4297,8452,8795,6213,7994,2420,4208,524,5915,8602,8330,2651,8547,6156,1812,6271,7991,9407,9804,1553,6866,1128,2119,4691,9711,8315,5879,9935,6900,482,682,4126,1041,428,6247,3720,5882,7526,2582,4327,7725,3503,2631 +2738,9323,721,7434,1453,6294,2957,3786,5722,6019,8685,4386,3066,9057,6860,499,5315,3045,5194,7111,3137,9104,941,586,3066,755,4177,8819,7040,5309,3583,3897,4428,7788,4721,7249,6559,7324,825,7311,3760,6064,6070,9672,4882,584,1365,9739,9331,5783,2624,7889,1604,1303,1555,7125,8312,425,8936,3233,7724,1480,403,7440,1784,1754,4721,1569,652,3893,4574,5692,9730,4813,9844,8291,9199,7101,3391,8914 +6044,2928,9332,3328,8588,447,3830,1176,3523,2705,8365,6136,5442,9049,5526,8575,8869,9031,7280,706,2794,8814,5767,4241,7696,78,6570,556,5083,1426,4502,3336,9518,2292,1885,3740,3153,9348,9331,8051,2759,5407,9028,7840,9255,831,515,2612,9747,7435,8964,4971,2048,4900,5967,8271,1719,9670,2810,6777,1594,6367,6259,8316,3815,1689,6840,9437,4361,822,9619,3065,83,6344,7486,8657,8228,9635,6932,4864 +8478,4777,6334,4678,7476,4963,6735,3096,5860,1405,5127,7269,7793,4738,227,9168,2996,8928,765,733,1276,7677,6258,1528,9558,3329,302,8901,1422,8277,6340,645,9125,8869,5952,141,8141,1816,9635,4025,4184,3093,83,2344,2747,9352,7966,1206,1126,1826,218,7939,2957,2729,810,8752,5247,4174,4038,8884,7899,9567,301,5265,5752,7524,4381,1669,3106,8270,6228,6373,754,2547,4240,2313,5514,3022,1040,9738 +2265,8192,1763,1369,8469,8789,4836,52,1212,6690,5257,8918,6723,6319,378,4039,2421,8555,8184,9577,1432,7139,8078,5452,9628,7579,4161,7490,5159,8559,1011,81,478,5840,1964,1334,6875,8670,9900,739,1514,8692,522,9316,6955,1345,8132,2277,3193,9773,3923,4177,2183,1236,6747,6575,4874,6003,6409,8187,745,8776,9440,7543,9825,2582,7381,8147,7236,5185,7564,6125,218,7991,6394,391,7659,7456,5128,5294 +2132,8992,8160,5782,4420,3371,3798,5054,552,5631,7546,4716,1332,6486,7892,7441,4370,6231,4579,2121,8615,1145,9391,1524,1385,2400,9437,2454,7896,7467,2928,8400,3299,4025,7458,4703,7206,6358,792,6200,725,4275,4136,7390,5984,4502,7929,5085,8176,4600,119,3568,76,9363,6943,2248,9077,9731,6213,5817,6729,4190,3092,6910,759,2682,8380,1254,9604,3011,9291,5329,9453,9746,2739,6522,3765,5634,1113,5789 +5304,5499,564,2801,679,2653,1783,3608,7359,7797,3284,796,3222,437,7185,6135,8571,2778,7488,5746,678,6140,861,7750,803,9859,9918,2425,3734,2698,9005,4864,9818,6743,2475,132,9486,3825,5472,919,292,4411,7213,7699,6435,9019,6769,1388,802,2124,1345,8493,9487,8558,7061,8777,8833,2427,2238,5409,4957,8503,3171,7622,5779,6145,2417,5873,5563,5693,9574,9491,1937,7384,4563,6842,5432,2751,3406,7981 diff --git a/names.txt b/names.txt new file mode 100644 index 0000000..d85040c --- /dev/null +++ b/names.txt @@ -0,0 +1 @@ +MARY,PATRICIA,LINDA,BARBARA,ELIZABETH,JENNIFER,MARIA,SUSAN,MARGARET,DOROTHY,LISA,NANCY,KAREN,BETTY,HELEN,SANDRA,DONNA,CAROL,RUTH,SHARON,MICHELLE,LAURA,SARAH,KIMBERLY,DEBORAH,JESSICA,SHIRLEY,CYNTHIA,ANGELA,MELISSA,BRENDA,AMY,ANNA,REBECCA,VIRGINIA,KATHLEEN,PAMELA,MARTHA,DEBRA,AMANDA,STEPHANIE,CAROLYN,CHRISTINE,MARIE,JANET,CATHERINE,FRANCES,ANN,JOYCE,DIANE,ALICE,JULIE,HEATHER,TERESA,DORIS,GLORIA,EVELYN,JEAN,CHERYL,MILDRED,KATHERINE,JOAN,ASHLEY,JUDITH,ROSE,JANICE,KELLY,NICOLE,JUDY,CHRISTINA,KATHY,THERESA,BEVERLY,DENISE,TAMMY,IRENE,JANE,LORI,RACHEL,MARILYN,ANDREA,KATHRYN,LOUISE,SARA,ANNE,JACQUELINE,WANDA,BONNIE,JULIA,RUBY,LOIS,TINA,PHYLLIS,NORMA,PAULA,DIANA,ANNIE,LILLIAN,EMILY,ROBIN,PEGGY,CRYSTAL,GLADYS,RITA,DAWN,CONNIE,FLORENCE,TRACY,EDNA,TIFFANY,CARMEN,ROSA,CINDY,GRACE,WENDY,VICTORIA,EDITH,KIM,SHERRY,SYLVIA,JOSEPHINE,THELMA,SHANNON,SHEILA,ETHEL,ELLEN,ELAINE,MARJORIE,CARRIE,CHARLOTTE,MONICA,ESTHER,PAULINE,EMMA,JUANITA,ANITA,RHONDA,HAZEL,AMBER,EVA,DEBBIE,APRIL,LESLIE,CLARA,LUCILLE,JAMIE,JOANNE,ELEANOR,VALERIE,DANIELLE,MEGAN,ALICIA,SUZANNE,MICHELE,GAIL,BERTHA,DARLENE,VERONICA,JILL,ERIN,GERALDINE,LAUREN,CATHY,JOANN,LORRAINE,LYNN,SALLY,REGINA,ERICA,BEATRICE,DOLORES,BERNICE,AUDREY,YVONNE,ANNETTE,JUNE,SAMANTHA,MARION,DANA,STACY,ANA,RENEE,IDA,VIVIAN,ROBERTA,HOLLY,BRITTANY,MELANIE,LORETTA,YOLANDA,JEANETTE,LAURIE,KATIE,KRISTEN,VANESSA,ALMA,SUE,ELSIE,BETH,JEANNE,VICKI,CARLA,TARA,ROSEMARY,EILEEN,TERRI,GERTRUDE,LUCY,TONYA,ELLA,STACEY,WILMA,GINA,KRISTIN,JESSIE,NATALIE,AGNES,VERA,WILLIE,CHARLENE,BESSIE,DELORES,MELINDA,PEARL,ARLENE,MAUREEN,COLLEEN,ALLISON,TAMARA,JOY,GEORGIA,CONSTANCE,LILLIE,CLAUDIA,JACKIE,MARCIA,TANYA,NELLIE,MINNIE,MARLENE,HEIDI,GLENDA,LYDIA,VIOLA,COURTNEY,MARIAN,STELLA,CAROLINE,DORA,JO,VICKIE,MATTIE,TERRY,MAXINE,IRMA,MABEL,MARSHA,MYRTLE,LENA,CHRISTY,DEANNA,PATSY,HILDA,GWENDOLYN,JENNIE,NORA,MARGIE,NINA,CASSANDRA,LEAH,PENNY,KAY,PRISCILLA,NAOMI,CAROLE,BRANDY,OLGA,BILLIE,DIANNE,TRACEY,LEONA,JENNY,FELICIA,SONIA,MIRIAM,VELMA,BECKY,BOBBIE,VIOLET,KRISTINA,TONI,MISTY,MAE,SHELLY,DAISY,RAMONA,SHERRI,ERIKA,KATRINA,CLAIRE,LINDSEY,LINDSAY,GENEVA,GUADALUPE,BELINDA,MARGARITA,SHERYL,CORA,FAYE,ADA,NATASHA,SABRINA,ISABEL,MARGUERITE,HATTIE,HARRIET,MOLLY,CECILIA,KRISTI,BRANDI,BLANCHE,SANDY,ROSIE,JOANNA,IRIS,EUNICE,ANGIE,INEZ,LYNDA,MADELINE,AMELIA,ALBERTA,GENEVIEVE,MONIQUE,JODI,JANIE,MAGGIE,KAYLA,SONYA,JAN,LEE,KRISTINE,CANDACE,FANNIE,MARYANN,OPAL,ALISON,YVETTE,MELODY,LUZ,SUSIE,OLIVIA,FLORA,SHELLEY,KRISTY,MAMIE,LULA,LOLA,VERNA,BEULAH,ANTOINETTE,CANDICE,JUANA,JEANNETTE,PAM,KELLI,HANNAH,WHITNEY,BRIDGET,KARLA,CELIA,LATOYA,PATTY,SHELIA,GAYLE,DELLA,VICKY,LYNNE,SHERI,MARIANNE,KARA,JACQUELYN,ERMA,BLANCA,MYRA,LETICIA,PAT,KRISTA,ROXANNE,ANGELICA,JOHNNIE,ROBYN,FRANCIS,ADRIENNE,ROSALIE,ALEXANDRA,BROOKE,BETHANY,SADIE,BERNADETTE,TRACI,JODY,KENDRA,JASMINE,NICHOLE,RACHAEL,CHELSEA,MABLE,ERNESTINE,MURIEL,MARCELLA,ELENA,KRYSTAL,ANGELINA,NADINE,KARI,ESTELLE,DIANNA,PAULETTE,LORA,MONA,DOREEN,ROSEMARIE,ANGEL,DESIREE,ANTONIA,HOPE,GINGER,JANIS,BETSY,CHRISTIE,FREDA,MERCEDES,MEREDITH,LYNETTE,TERI,CRISTINA,EULA,LEIGH,MEGHAN,SOPHIA,ELOISE,ROCHELLE,GRETCHEN,CECELIA,RAQUEL,HENRIETTA,ALYSSA,JANA,KELLEY,GWEN,KERRY,JENNA,TRICIA,LAVERNE,OLIVE,ALEXIS,TASHA,SILVIA,ELVIRA,CASEY,DELIA,SOPHIE,KATE,PATTI,LORENA,KELLIE,SONJA,LILA,LANA,DARLA,MAY,MINDY,ESSIE,MANDY,LORENE,ELSA,JOSEFINA,JEANNIE,MIRANDA,DIXIE,LUCIA,MARTA,FAITH,LELA,JOHANNA,SHARI,CAMILLE,TAMI,SHAWNA,ELISA,EBONY,MELBA,ORA,NETTIE,TABITHA,OLLIE,JAIME,WINIFRED,KRISTIE,MARINA,ALISHA,AIMEE,RENA,MYRNA,MARLA,TAMMIE,LATASHA,BONITA,PATRICE,RONDA,SHERRIE,ADDIE,FRANCINE,DELORIS,STACIE,ADRIANA,CHERI,SHELBY,ABIGAIL,CELESTE,JEWEL,CARA,ADELE,REBEKAH,LUCINDA,DORTHY,CHRIS,EFFIE,TRINA,REBA,SHAWN,SALLIE,AURORA,LENORA,ETTA,LOTTIE,KERRI,TRISHA,NIKKI,ESTELLA,FRANCISCA,JOSIE,TRACIE,MARISSA,KARIN,BRITTNEY,JANELLE,LOURDES,LAUREL,HELENE,FERN,ELVA,CORINNE,KELSEY,INA,BETTIE,ELISABETH,AIDA,CAITLIN,INGRID,IVA,EUGENIA,CHRISTA,GOLDIE,CASSIE,MAUDE,JENIFER,THERESE,FRANKIE,DENA,LORNA,JANETTE,LATONYA,CANDY,MORGAN,CONSUELO,TAMIKA,ROSETTA,DEBORA,CHERIE,POLLY,DINA,JEWELL,FAY,JILLIAN,DOROTHEA,NELL,TRUDY,ESPERANZA,PATRICA,KIMBERLEY,SHANNA,HELENA,CAROLINA,CLEO,STEFANIE,ROSARIO,OLA,JANINE,MOLLIE,LUPE,ALISA,LOU,MARIBEL,SUSANNE,BETTE,SUSANA,ELISE,CECILE,ISABELLE,LESLEY,JOCELYN,PAIGE,JONI,RACHELLE,LEOLA,DAPHNE,ALTA,ESTER,PETRA,GRACIELA,IMOGENE,JOLENE,KEISHA,LACEY,GLENNA,GABRIELA,KERI,URSULA,LIZZIE,KIRSTEN,SHANA,ADELINE,MAYRA,JAYNE,JACLYN,GRACIE,SONDRA,CARMELA,MARISA,ROSALIND,CHARITY,TONIA,BEATRIZ,MARISOL,CLARICE,JEANINE,SHEENA,ANGELINE,FRIEDA,LILY,ROBBIE,SHAUNA,MILLIE,CLAUDETTE,CATHLEEN,ANGELIA,GABRIELLE,AUTUMN,KATHARINE,SUMMER,JODIE,STACI,LEA,CHRISTI,JIMMIE,JUSTINE,ELMA,LUELLA,MARGRET,DOMINIQUE,SOCORRO,RENE,MARTINA,MARGO,MAVIS,CALLIE,BOBBI,MARITZA,LUCILE,LEANNE,JEANNINE,DEANA,AILEEN,LORIE,LADONNA,WILLA,MANUELA,GALE,SELMA,DOLLY,SYBIL,ABBY,LARA,DALE,IVY,DEE,WINNIE,MARCY,LUISA,JERI,MAGDALENA,OFELIA,MEAGAN,AUDRA,MATILDA,LEILA,CORNELIA,BIANCA,SIMONE,BETTYE,RANDI,VIRGIE,LATISHA,BARBRA,GEORGINA,ELIZA,LEANN,BRIDGETTE,RHODA,HALEY,ADELA,NOLA,BERNADINE,FLOSSIE,ILA,GRETA,RUTHIE,NELDA,MINERVA,LILLY,TERRIE,LETHA,HILARY,ESTELA,VALARIE,BRIANNA,ROSALYN,EARLINE,CATALINA,AVA,MIA,CLARISSA,LIDIA,CORRINE,ALEXANDRIA,CONCEPCION,TIA,SHARRON,RAE,DONA,ERICKA,JAMI,ELNORA,CHANDRA,LENORE,NEVA,MARYLOU,MELISA,TABATHA,SERENA,AVIS,ALLIE,SOFIA,JEANIE,ODESSA,NANNIE,HARRIETT,LORAINE,PENELOPE,MILAGROS,EMILIA,BENITA,ALLYSON,ASHLEE,TANIA,TOMMIE,ESMERALDA,KARINA,EVE,PEARLIE,ZELMA,MALINDA,NOREEN,TAMEKA,SAUNDRA,HILLARY,AMIE,ALTHEA,ROSALINDA,JORDAN,LILIA,ALANA,GAY,CLARE,ALEJANDRA,ELINOR,MICHAEL,LORRIE,JERRI,DARCY,EARNESTINE,CARMELLA,TAYLOR,NOEMI,MARCIE,LIZA,ANNABELLE,LOUISA,EARLENE,MALLORY,CARLENE,NITA,SELENA,TANISHA,KATY,JULIANNE,JOHN,LAKISHA,EDWINA,MARICELA,MARGERY,KENYA,DOLLIE,ROXIE,ROSLYN,KATHRINE,NANETTE,CHARMAINE,LAVONNE,ILENE,KRIS,TAMMI,SUZETTE,CORINE,KAYE,JERRY,MERLE,CHRYSTAL,LINA,DEANNE,LILIAN,JULIANA,ALINE,LUANN,KASEY,MARYANNE,EVANGELINE,COLETTE,MELVA,LAWANDA,YESENIA,NADIA,MADGE,KATHIE,EDDIE,OPHELIA,VALERIA,NONA,MITZI,MARI,GEORGETTE,CLAUDINE,FRAN,ALISSA,ROSEANN,LAKEISHA,SUSANNA,REVA,DEIDRE,CHASITY,SHEREE,CARLY,JAMES,ELVIA,ALYCE,DEIRDRE,GENA,BRIANA,ARACELI,KATELYN,ROSANNE,WENDI,TESSA,BERTA,MARVA,IMELDA,MARIETTA,MARCI,LEONOR,ARLINE,SASHA,MADELYN,JANNA,JULIETTE,DEENA,AURELIA,JOSEFA,AUGUSTA,LILIANA,YOUNG,CHRISTIAN,LESSIE,AMALIA,SAVANNAH,ANASTASIA,VILMA,NATALIA,ROSELLA,LYNNETTE,CORINA,ALFREDA,LEANNA,CAREY,AMPARO,COLEEN,TAMRA,AISHA,WILDA,KARYN,CHERRY,QUEEN,MAURA,MAI,EVANGELINA,ROSANNA,HALLIE,ERNA,ENID,MARIANA,LACY,JULIET,JACKLYN,FREIDA,MADELEINE,MARA,HESTER,CATHRYN,LELIA,CASANDRA,BRIDGETT,ANGELITA,JANNIE,DIONNE,ANNMARIE,KATINA,BERYL,PHOEBE,MILLICENT,KATHERYN,DIANN,CARISSA,MARYELLEN,LIZ,LAURI,HELGA,GILDA,ADRIAN,RHEA,MARQUITA,HOLLIE,TISHA,TAMERA,ANGELIQUE,FRANCESCA,BRITNEY,KAITLIN,LOLITA,FLORINE,ROWENA,REYNA,TWILA,FANNY,JANELL,INES,CONCETTA,BERTIE,ALBA,BRIGITTE,ALYSON,VONDA,PANSY,ELBA,NOELLE,LETITIA,KITTY,DEANN,BRANDIE,LOUELLA,LETA,FELECIA,SHARLENE,LESA,BEVERLEY,ROBERT,ISABELLA,HERMINIA,TERRA,CELINA,TORI,OCTAVIA,JADE,DENICE,GERMAINE,SIERRA,MICHELL,CORTNEY,NELLY,DORETHA,SYDNEY,DEIDRA,MONIKA,LASHONDA,JUDI,CHELSEY,ANTIONETTE,MARGOT,BOBBY,ADELAIDE,NAN,LEEANN,ELISHA,DESSIE,LIBBY,KATHI,GAYLA,LATANYA,MINA,MELLISA,KIMBERLEE,JASMIN,RENAE,ZELDA,ELDA,MA,JUSTINA,GUSSIE,EMILIE,CAMILLA,ABBIE,ROCIO,KAITLYN,JESSE,EDYTHE,ASHLEIGH,SELINA,LAKESHA,GERI,ALLENE,PAMALA,MICHAELA,DAYNA,CARYN,ROSALIA,SUN,JACQULINE,REBECA,MARYBETH,KRYSTLE,IOLA,DOTTIE,BENNIE,BELLE,AUBREY,GRISELDA,ERNESTINA,ELIDA,ADRIANNE,DEMETRIA,DELMA,CHONG,JAQUELINE,DESTINY,ARLEEN,VIRGINA,RETHA,FATIMA,TILLIE,ELEANORE,CARI,TREVA,BIRDIE,WILHELMINA,ROSALEE,MAURINE,LATRICE,YONG,JENA,TARYN,ELIA,DEBBY,MAUDIE,JEANNA,DELILAH,CATRINA,SHONDA,HORTENCIA,THEODORA,TERESITA,ROBBIN,DANETTE,MARYJANE,FREDDIE,DELPHINE,BRIANNE,NILDA,DANNA,CINDI,BESS,IONA,HANNA,ARIEL,WINONA,VIDA,ROSITA,MARIANNA,WILLIAM,RACHEAL,GUILLERMINA,ELOISA,CELESTINE,CAREN,MALISSA,LONA,CHANTEL,SHELLIE,MARISELA,LEORA,AGATHA,SOLEDAD,MIGDALIA,IVETTE,CHRISTEN,ATHENA,JANEL,CHLOE,VEDA,PATTIE,TESSIE,TERA,MARILYNN,LUCRETIA,KARRIE,DINAH,DANIELA,ALECIA,ADELINA,VERNICE,SHIELA,PORTIA,MERRY,LASHAWN,DEVON,DARA,TAWANA,OMA,VERDA,CHRISTIN,ALENE,ZELLA,SANDI,RAFAELA,MAYA,KIRA,CANDIDA,ALVINA,SUZAN,SHAYLA,LYN,LETTIE,ALVA,SAMATHA,ORALIA,MATILDE,MADONNA,LARISSA,VESTA,RENITA,INDIA,DELOIS,SHANDA,PHILLIS,LORRI,ERLINDA,CRUZ,CATHRINE,BARB,ZOE,ISABELL,IONE,GISELA,CHARLIE,VALENCIA,ROXANNA,MAYME,KISHA,ELLIE,MELLISSA,DORRIS,DALIA,BELLA,ANNETTA,ZOILA,RETA,REINA,LAURETTA,KYLIE,CHRISTAL,PILAR,CHARLA,ELISSA,TIFFANI,TANA,PAULINA,LEOTA,BREANNA,JAYME,CARMEL,VERNELL,TOMASA,MANDI,DOMINGA,SANTA,MELODIE,LURA,ALEXA,TAMELA,RYAN,MIRNA,KERRIE,VENUS,NOEL,FELICITA,CRISTY,CARMELITA,BERNIECE,ANNEMARIE,TIARA,ROSEANNE,MISSY,CORI,ROXANA,PRICILLA,KRISTAL,JUNG,ELYSE,HAYDEE,ALETHA,BETTINA,MARGE,GILLIAN,FILOMENA,CHARLES,ZENAIDA,HARRIETTE,CARIDAD,VADA,UNA,ARETHA,PEARLINE,MARJORY,MARCELA,FLOR,EVETTE,ELOUISE,ALINA,TRINIDAD,DAVID,DAMARIS,CATHARINE,CARROLL,BELVA,NAKIA,MARLENA,LUANNE,LORINE,KARON,DORENE,DANITA,BRENNA,TATIANA,SAMMIE,LOUANN,LOREN,JULIANNA,ANDRIA,PHILOMENA,LUCILA,LEONORA,DOVIE,ROMONA,MIMI,JACQUELIN,GAYE,TONJA,MISTI,JOE,GENE,CHASTITY,STACIA,ROXANN,MICAELA,NIKITA,MEI,VELDA,MARLYS,JOHNNA,AURA,LAVERN,IVONNE,HAYLEY,NICKI,MAJORIE,HERLINDA,GEORGE,ALPHA,YADIRA,PERLA,GREGORIA,DANIEL,ANTONETTE,SHELLI,MOZELLE,MARIAH,JOELLE,CORDELIA,JOSETTE,CHIQUITA,TRISTA,LOUIS,LAQUITA,GEORGIANA,CANDI,SHANON,LONNIE,HILDEGARD,CECIL,VALENTINA,STEPHANY,MAGDA,KAROL,GERRY,GABRIELLA,TIANA,ROMA,RICHELLE,RAY,PRINCESS,OLETA,JACQUE,IDELLA,ALAINA,SUZANNA,JOVITA,BLAIR,TOSHA,RAVEN,NEREIDA,MARLYN,KYLA,JOSEPH,DELFINA,TENA,STEPHENIE,SABINA,NATHALIE,MARCELLE,GERTIE,DARLEEN,THEA,SHARONDA,SHANTEL,BELEN,VENESSA,ROSALINA,ONA,GENOVEVA,COREY,CLEMENTINE,ROSALBA,RENATE,RENATA,MI,IVORY,GEORGIANNA,FLOY,DORCAS,ARIANA,TYRA,THEDA,MARIAM,JULI,JESICA,DONNIE,VIKKI,VERLA,ROSELYN,MELVINA,JANNETTE,GINNY,DEBRAH,CORRIE,ASIA,VIOLETA,MYRTIS,LATRICIA,COLLETTE,CHARLEEN,ANISSA,VIVIANA,TWYLA,PRECIOUS,NEDRA,LATONIA,LAN,HELLEN,FABIOLA,ANNAMARIE,ADELL,SHARYN,CHANTAL,NIKI,MAUD,LIZETTE,LINDY,KIA,KESHA,JEANA,DANELLE,CHARLINE,CHANEL,CARROL,VALORIE,LIA,DORTHA,CRISTAL,SUNNY,LEONE,LEILANI,GERRI,DEBI,ANDRA,KESHIA,IMA,EULALIA,EASTER,DULCE,NATIVIDAD,LINNIE,KAMI,GEORGIE,CATINA,BROOK,ALDA,WINNIFRED,SHARLA,RUTHANN,MEAGHAN,MAGDALENE,LISSETTE,ADELAIDA,VENITA,TRENA,SHIRLENE,SHAMEKA,ELIZEBETH,DIAN,SHANTA,MICKEY,LATOSHA,CARLOTTA,WINDY,SOON,ROSINA,MARIANN,LEISA,JONNIE,DAWNA,CATHIE,BILLY,ASTRID,SIDNEY,LAUREEN,JANEEN,HOLLI,FAWN,VICKEY,TERESSA,SHANTE,RUBYE,MARCELINA,CHANDA,CARY,TERESE,SCARLETT,MARTY,MARNIE,LULU,LISETTE,JENIFFER,ELENOR,DORINDA,DONITA,CARMAN,BERNITA,ALTAGRACIA,ALETA,ADRIANNA,ZORAIDA,RONNIE,NICOLA,LYNDSEY,KENDALL,JANINA,CHRISSY,AMI,STARLA,PHYLIS,PHUONG,KYRA,CHARISSE,BLANCH,SANJUANITA,RONA,NANCI,MARILEE,MARANDA,CORY,BRIGETTE,SANJUANA,MARITA,KASSANDRA,JOYCELYN,IRA,FELIPA,CHELSIE,BONNY,MIREYA,LORENZA,KYONG,ILEANA,CANDELARIA,TONY,TOBY,SHERIE,OK,MARK,LUCIE,LEATRICE,LAKESHIA,GERDA,EDIE,BAMBI,MARYLIN,LAVON,HORTENSE,GARNET,EVIE,TRESSA,SHAYNA,LAVINA,KYUNG,JEANETTA,SHERRILL,SHARA,PHYLISS,MITTIE,ANABEL,ALESIA,THUY,TAWANDA,RICHARD,JOANIE,TIFFANIE,LASHANDA,KARISSA,ENRIQUETA,DARIA,DANIELLA,CORINNA,ALANNA,ABBEY,ROXANE,ROSEANNA,MAGNOLIA,LIDA,KYLE,JOELLEN,ERA,CORAL,CARLEEN,TRESA,PEGGIE,NOVELLA,NILA,MAYBELLE,JENELLE,CARINA,NOVA,MELINA,MARQUERITE,MARGARETTE,JOSEPHINA,EVONNE,DEVIN,CINTHIA,ALBINA,TOYA,TAWNYA,SHERITA,SANTOS,MYRIAM,LIZABETH,LISE,KEELY,JENNI,GISELLE,CHERYLE,ARDITH,ARDIS,ALESHA,ADRIANE,SHAINA,LINNEA,KAROLYN,HONG,FLORIDA,FELISHA,DORI,DARCI,ARTIE,ARMIDA,ZOLA,XIOMARA,VERGIE,SHAMIKA,NENA,NANNETTE,MAXIE,LOVIE,JEANE,JAIMIE,INGE,FARRAH,ELAINA,CAITLYN,STARR,FELICITAS,CHERLY,CARYL,YOLONDA,YASMIN,TEENA,PRUDENCE,PENNIE,NYDIA,MACKENZIE,ORPHA,MARVEL,LIZBETH,LAURETTE,JERRIE,HERMELINDA,CAROLEE,TIERRA,MIRIAN,META,MELONY,KORI,JENNETTE,JAMILA,ENA,ANH,YOSHIKO,SUSANNAH,SALINA,RHIANNON,JOLEEN,CRISTINE,ASHTON,ARACELY,TOMEKA,SHALONDA,MARTI,LACIE,KALA,JADA,ILSE,HAILEY,BRITTANI,ZONA,SYBLE,SHERRYL,RANDY,NIDIA,MARLO,KANDICE,KANDI,DEB,DEAN,AMERICA,ALYCIA,TOMMY,RONNA,NORENE,MERCY,JOSE,INGEBORG,GIOVANNA,GEMMA,CHRISTEL,AUDRY,ZORA,VITA,VAN,TRISH,STEPHAINE,SHIRLEE,SHANIKA,MELONIE,MAZIE,JAZMIN,INGA,HOA,HETTIE,GERALYN,FONDA,ESTRELLA,ADELLA,SU,SARITA,RINA,MILISSA,MARIBETH,GOLDA,EVON,ETHELYN,ENEDINA,CHERISE,CHANA,VELVA,TAWANNA,SADE,MIRTA,LI,KARIE,JACINTA,ELNA,DAVINA,CIERRA,ASHLIE,ALBERTHA,TANESHA,STEPHANI,NELLE,MINDI,LU,LORINDA,LARUE,FLORENE,DEMETRA,DEDRA,CIARA,CHANTELLE,ASHLY,SUZY,ROSALVA,NOELIA,LYDA,LEATHA,KRYSTYNA,KRISTAN,KARRI,DARLINE,DARCIE,CINDA,CHEYENNE,CHERRIE,AWILDA,ALMEDA,ROLANDA,LANETTE,JERILYN,GISELE,EVALYN,CYNDI,CLETA,CARIN,ZINA,ZENA,VELIA,TANIKA,PAUL,CHARISSA,THOMAS,TALIA,MARGARETE,LAVONDA,KAYLEE,KATHLENE,JONNA,IRENA,ILONA,IDALIA,CANDIS,CANDANCE,BRANDEE,ANITRA,ALIDA,SIGRID,NICOLETTE,MARYJO,LINETTE,HEDWIG,CHRISTIANA,CASSIDY,ALEXIA,TRESSIE,MODESTA,LUPITA,LITA,GLADIS,EVELIA,DAVIDA,CHERRI,CECILY,ASHELY,ANNABEL,AGUSTINA,WANITA,SHIRLY,ROSAURA,HULDA,EUN,BAILEY,YETTA,VERONA,THOMASINA,SIBYL,SHANNAN,MECHELLE,LUE,LEANDRA,LANI,KYLEE,KANDY,JOLYNN,FERNE,EBONI,CORENE,ALYSIA,ZULA,NADA,MOIRA,LYNDSAY,LORRETTA,JUAN,JAMMIE,HORTENSIA,GAYNELL,CAMERON,ADRIA,VINA,VICENTA,TANGELA,STEPHINE,NORINE,NELLA,LIANA,LESLEE,KIMBERELY,ILIANA,GLORY,FELICA,EMOGENE,ELFRIEDE,EDEN,EARTHA,CARMA,BEA,OCIE,MARRY,LENNIE,KIARA,JACALYN,CARLOTA,ARIELLE,YU,STAR,OTILIA,KIRSTIN,KACEY,JOHNETTA,JOEY,JOETTA,JERALDINE,JAUNITA,ELANA,DORTHEA,CAMI,AMADA,ADELIA,VERNITA,TAMAR,SIOBHAN,RENEA,RASHIDA,OUIDA,ODELL,NILSA,MERYL,KRISTYN,JULIETA,DANICA,BREANNE,AUREA,ANGLEA,SHERRON,ODETTE,MALIA,LORELEI,LIN,LEESA,KENNA,KATHLYN,FIONA,CHARLETTE,SUZIE,SHANTELL,SABRA,RACQUEL,MYONG,MIRA,MARTINE,LUCIENNE,LAVADA,JULIANN,JOHNIE,ELVERA,DELPHIA,CLAIR,CHRISTIANE,CHAROLETTE,CARRI,AUGUSTINE,ASHA,ANGELLA,PAOLA,NINFA,LEDA,LAI,EDA,SUNSHINE,STEFANI,SHANELL,PALMA,MACHELLE,LISSA,KECIA,KATHRYNE,KARLENE,JULISSA,JETTIE,JENNIFFER,HUI,CORRINA,CHRISTOPHER,CAROLANN,ALENA,TESS,ROSARIA,MYRTICE,MARYLEE,LIANE,KENYATTA,JUDIE,JANEY,IN,ELMIRA,ELDORA,DENNA,CRISTI,CATHI,ZAIDA,VONNIE,VIVA,VERNIE,ROSALINE,MARIELA,LUCIANA,LESLI,KARAN,FELICE,DENEEN,ADINA,WYNONA,TARSHA,SHERON,SHASTA,SHANITA,SHANI,SHANDRA,RANDA,PINKIE,PARIS,NELIDA,MARILOU,LYLA,LAURENE,LACI,JOI,JANENE,DOROTHA,DANIELE,DANI,CAROLYNN,CARLYN,BERENICE,AYESHA,ANNELIESE,ALETHEA,THERSA,TAMIKO,RUFINA,OLIVA,MOZELL,MARYLYN,MADISON,KRISTIAN,KATHYRN,KASANDRA,KANDACE,JANAE,GABRIEL,DOMENICA,DEBBRA,DANNIELLE,CHUN,BUFFY,BARBIE,ARCELIA,AJA,ZENOBIA,SHAREN,SHAREE,PATRICK,PAGE,MY,LAVINIA,KUM,KACIE,JACKELINE,HUONG,FELISA,EMELIA,ELEANORA,CYTHIA,CRISTIN,CLYDE,CLARIBEL,CARON,ANASTACIA,ZULMA,ZANDRA,YOKO,TENISHA,SUSANN,SHERILYN,SHAY,SHAWANDA,SABINE,ROMANA,MATHILDA,LINSEY,KEIKO,JOANA,ISELA,GRETTA,GEORGETTA,EUGENIE,DUSTY,DESIRAE,DELORA,CORAZON,ANTONINA,ANIKA,WILLENE,TRACEE,TAMATHA,REGAN,NICHELLE,MICKIE,MAEGAN,LUANA,LANITA,KELSIE,EDELMIRA,BREE,AFTON,TEODORA,TAMIE,SHENA,MEG,LINH,KELI,KACI,DANYELLE,BRITT,ARLETTE,ALBERTINE,ADELLE,TIFFINY,STORMY,SIMONA,NUMBERS,NICOLASA,NICHOL,NIA,NAKISHA,MEE,MAIRA,LOREEN,KIZZY,JOHNNY,JAY,FALLON,CHRISTENE,BOBBYE,ANTHONY,YING,VINCENZA,TANJA,RUBIE,RONI,QUEENIE,MARGARETT,KIMBERLI,IRMGARD,IDELL,HILMA,EVELINA,ESTA,EMILEE,DENNISE,DANIA,CARL,CARIE,ANTONIO,WAI,SANG,RISA,RIKKI,PARTICIA,MUI,MASAKO,MARIO,LUVENIA,LOREE,LONI,LIEN,KEVIN,GIGI,FLORENCIA,DORIAN,DENITA,DALLAS,CHI,BILLYE,ALEXANDER,TOMIKA,SHARITA,RANA,NIKOLE,NEOMA,MARGARITE,MADALYN,LUCINA,LAILA,KALI,JENETTE,GABRIELE,EVELYNE,ELENORA,CLEMENTINA,ALEJANDRINA,ZULEMA,VIOLETTE,VANNESSA,THRESA,RETTA,PIA,PATIENCE,NOELLA,NICKIE,JONELL,DELTA,CHUNG,CHAYA,CAMELIA,BETHEL,ANYA,ANDREW,THANH,SUZANN,SPRING,SHU,MILA,LILLA,LAVERNA,KEESHA,KATTIE,GIA,GEORGENE,EVELINE,ESTELL,ELIZBETH,VIVIENNE,VALLIE,TRUDIE,STEPHANE,MICHEL,MAGALY,MADIE,KENYETTA,KARREN,JANETTA,HERMINE,HARMONY,DRUCILLA,DEBBI,CELESTINA,CANDIE,BRITNI,BECKIE,AMINA,ZITA,YUN,YOLANDE,VIVIEN,VERNETTA,TRUDI,SOMMER,PEARLE,PATRINA,OSSIE,NICOLLE,LOYCE,LETTY,LARISA,KATHARINA,JOSELYN,JONELLE,JENELL,IESHA,HEIDE,FLORINDA,FLORENTINA,FLO,ELODIA,DORINE,BRUNILDA,BRIGID,ASHLI,ARDELLA,TWANA,THU,TARAH,SUNG,SHEA,SHAVON,SHANE,SERINA,RAYNA,RAMONITA,NGA,MARGURITE,LUCRECIA,KOURTNEY,KATI,JESUS,JESENIA,DIAMOND,CRISTA,AYANA,ALICA,ALIA,VINNIE,SUELLEN,ROMELIA,RACHELL,PIPER,OLYMPIA,MICHIKO,KATHALEEN,JOLIE,JESSI,JANESSA,HANA,HA,ELEASE,CARLETTA,BRITANY,SHONA,SALOME,ROSAMOND,REGENA,RAINA,NGOC,NELIA,LOUVENIA,LESIA,LATRINA,LATICIA,LARHONDA,JINA,JACKI,HOLLIS,HOLLEY,EMMY,DEEANN,CORETTA,ARNETTA,VELVET,THALIA,SHANICE,NETA,MIKKI,MICKI,LONNA,LEANA,LASHUNDA,KILEY,JOYE,JACQULYN,IGNACIA,HYUN,HIROKO,HENRY,HENRIETTE,ELAYNE,DELINDA,DARNELL,DAHLIA,COREEN,CONSUELA,CONCHITA,CELINE,BABETTE,AYANNA,ANETTE,ALBERTINA,SKYE,SHAWNEE,SHANEKA,QUIANA,PAMELIA,MIN,MERRI,MERLENE,MARGIT,KIESHA,KIERA,KAYLENE,JODEE,JENISE,ERLENE,EMMIE,ELSE,DARYL,DALILA,DAISEY,CODY,CASIE,BELIA,BABARA,VERSIE,VANESA,SHELBA,SHAWNDA,SAM,NORMAN,NIKIA,NAOMA,MARNA,MARGERET,MADALINE,LAWANA,KINDRA,JUTTA,JAZMINE,JANETT,HANNELORE,GLENDORA,GERTRUD,GARNETT,FREEDA,FREDERICA,FLORANCE,FLAVIA,DENNIS,CARLINE,BEVERLEE,ANJANETTE,VALDA,TRINITY,TAMALA,STEVIE,SHONNA,SHA,SARINA,ONEIDA,MICAH,MERILYN,MARLEEN,LURLINE,LENNA,KATHERIN,JIN,JENI,HAE,GRACIA,GLADY,FARAH,ERIC,ENOLA,EMA,DOMINQUE,DEVONA,DELANA,CECILA,CAPRICE,ALYSHA,ALI,ALETHIA,VENA,THERESIA,TAWNY,SONG,SHAKIRA,SAMARA,SACHIKO,RACHELE,PAMELLA,NICKY,MARNI,MARIEL,MAREN,MALISA,LIGIA,LERA,LATORIA,LARAE,KIMBER,KATHERN,KAREY,JENNEFER,JANETH,HALINA,FREDIA,DELISA,DEBROAH,CIERA,CHIN,ANGELIKA,ANDREE,ALTHA,YEN,VIVAN,TERRESA,TANNA,SUK,SUDIE,SOO,SIGNE,SALENA,RONNI,REBBECCA,MYRTIE,MCKENZIE,MALIKA,MAIDA,LOAN,LEONARDA,KAYLEIGH,FRANCE,ETHYL,ELLYN,DAYLE,CAMMIE,BRITTNI,BIRGIT,AVELINA,ASUNCION,ARIANNA,AKIKO,VENICE,TYESHA,TONIE,TIESHA,TAKISHA,STEFFANIE,SINDY,SANTANA,MEGHANN,MANDA,MACIE,LADY,KELLYE,KELLEE,JOSLYN,JASON,INGER,INDIRA,GLINDA,GLENNIS,FERNANDA,FAUSTINA,ENEIDA,ELICIA,DOT,DIGNA,DELL,ARLETTA,ANDRE,WILLIA,TAMMARA,TABETHA,SHERRELL,SARI,REFUGIO,REBBECA,PAULETTA,NIEVES,NATOSHA,NAKITA,MAMMIE,KENISHA,KAZUKO,KASSIE,GARY,EARLEAN,DAPHINE,CORLISS,CLOTILDE,CAROLYNE,BERNETTA,AUGUSTINA,AUDREA,ANNIS,ANNABELL,YAN,TENNILLE,TAMICA,SELENE,SEAN,ROSANA,REGENIA,QIANA,MARKITA,MACY,LEEANNE,LAURINE,KYM,JESSENIA,JANITA,GEORGINE,GENIE,EMIKO,ELVIE,DEANDRA,DAGMAR,CORIE,COLLEN,CHERISH,ROMAINE,PORSHA,PEARLENE,MICHELINE,MERNA,MARGORIE,MARGARETTA,LORE,KENNETH,JENINE,HERMINA,FREDERICKA,ELKE,DRUSILLA,DORATHY,DIONE,DESIRE,CELENA,BRIGIDA,ANGELES,ALLEGRA,THEO,TAMEKIA,SYNTHIA,STEPHEN,SOOK,SLYVIA,ROSANN,REATHA,RAYE,MARQUETTA,MARGART,LING,LAYLA,KYMBERLY,KIANA,KAYLEEN,KATLYN,KARMEN,JOELLA,IRINA,EMELDA,ELENI,DETRA,CLEMMIE,CHERYLL,CHANTELL,CATHEY,ARNITA,ARLA,ANGLE,ANGELIC,ALYSE,ZOFIA,THOMASINE,TENNIE,SON,SHERLY,SHERLEY,SHARYL,REMEDIOS,PETRINA,NICKOLE,MYUNG,MYRLE,MOZELLA,LOUANNE,LISHA,LATIA,LANE,KRYSTA,JULIENNE,JOEL,JEANENE,JACQUALINE,ISAURA,GWENDA,EARLEEN,DONALD,CLEOPATRA,CARLIE,AUDIE,ANTONIETTA,ALISE,ALEX,VERDELL,VAL,TYLER,TOMOKO,THAO,TALISHA,STEVEN,SO,SHEMIKA,SHAUN,SCARLET,SAVANNA,SANTINA,ROSIA,RAEANN,ODILIA,NANA,MINNA,MAGAN,LYNELLE,LE,KARMA,JOEANN,IVANA,INELL,ILANA,HYE,HONEY,HEE,GUDRUN,FRANK,DREAMA,CRISSY,CHANTE,CARMELINA,ARVILLA,ARTHUR,ANNAMAE,ALVERA,ALEIDA,AARON,YEE,YANIRA,VANDA,TIANNA,TAM,STEFANIA,SHIRA,PERRY,NICOL,NANCIE,MONSERRATE,MINH,MELYNDA,MELANY,MATTHEW,LOVELLA,LAURE,KIRBY,KACY,JACQUELYNN,HYON,GERTHA,FRANCISCO,ELIANA,CHRISTENA,CHRISTEEN,CHARISE,CATERINA,CARLEY,CANDYCE,ARLENA,AMMIE,YANG,WILLETTE,VANITA,TUYET,TINY,SYREETA,SILVA,SCOTT,RONALD,PENNEY,NYLA,MICHAL,MAURICE,MARYAM,MARYA,MAGEN,LUDIE,LOMA,LIVIA,LANELL,KIMBERLIE,JULEE,DONETTA,DIEDRA,DENISHA,DEANE,DAWNE,CLARINE,CHERRYL,BRONWYN,BRANDON,ALLA,VALERY,TONDA,SUEANN,SORAYA,SHOSHANA,SHELA,SHARLEEN,SHANELLE,NERISSA,MICHEAL,MERIDITH,MELLIE,MAYE,MAPLE,MAGARET,LUIS,LILI,LEONILA,LEONIE,LEEANNA,LAVONIA,LAVERA,KRISTEL,KATHEY,KATHE,JUSTIN,JULIAN,JIMMY,JANN,ILDA,HILDRED,HILDEGARDE,GENIA,FUMIKO,EVELIN,ERMELINDA,ELLY,DUNG,DOLORIS,DIONNA,DANAE,BERNEICE,ANNICE,ALIX,VERENA,VERDIE,TRISTAN,SHAWNNA,SHAWANA,SHAUNNA,ROZELLA,RANDEE,RANAE,MILAGRO,LYNELL,LUISE,LOUIE,LOIDA,LISBETH,KARLEEN,JUNITA,JONA,ISIS,HYACINTH,HEDY,GWENN,ETHELENE,ERLINE,EDWARD,DONYA,DOMONIQUE,DELICIA,DANNETTE,CICELY,BRANDA,BLYTHE,BETHANN,ASHLYN,ANNALEE,ALLINE,YUKO,VELLA,TRANG,TOWANDA,TESHA,SHERLYN,NARCISA,MIGUELINA,MERI,MAYBELL,MARLANA,MARGUERITA,MADLYN,LUNA,LORY,LORIANN,LIBERTY,LEONORE,LEIGHANN,LAURICE,LATESHA,LARONDA,KATRICE,KASIE,KARL,KALEY,JADWIGA,GLENNIE,GEARLDINE,FRANCINA,EPIFANIA,DYAN,DORIE,DIEDRE,DENESE,DEMETRICE,DELENA,DARBY,CRISTIE,CLEORA,CATARINA,CARISA,BERNIE,BARBERA,ALMETA,TRULA,TEREASA,SOLANGE,SHEILAH,SHAVONNE,SANORA,ROCHELL,MATHILDE,MARGARETA,MAIA,LYNSEY,LAWANNA,LAUNA,KENA,KEENA,KATIA,JAMEY,GLYNDA,GAYLENE,ELVINA,ELANOR,DANUTA,DANIKA,CRISTEN,CORDIE,COLETTA,CLARITA,CARMON,BRYNN,AZUCENA,AUNDREA,ANGELE,YI,WALTER,VERLIE,VERLENE,TAMESHA,SILVANA,SEBRINA,SAMIRA,REDA,RAYLENE,PENNI,PANDORA,NORAH,NOMA,MIREILLE,MELISSIA,MARYALICE,LARAINE,KIMBERY,KARYL,KARINE,KAM,JOLANDA,JOHANA,JESUSA,JALEESA,JAE,JACQUELYNE,IRISH,ILUMINADA,HILARIA,HANH,GENNIE,FRANCIE,FLORETTA,EXIE,EDDA,DREMA,DELPHA,BEV,BARBAR,ASSUNTA,ARDELL,ANNALISA,ALISIA,YUKIKO,YOLANDO,WONDA,WEI,WALTRAUD,VETA,TEQUILA,TEMEKA,TAMEIKA,SHIRLEEN,SHENITA,PIEDAD,OZELLA,MIRTHA,MARILU,KIMIKO,JULIANE,JENICE,JEN,JANAY,JACQUILINE,HILDE,FE,FAE,EVAN,EUGENE,ELOIS,ECHO,DEVORAH,CHAU,BRINDA,BETSEY,ARMINDA,ARACELIS,APRYL,ANNETT,ALISHIA,VEOLA,USHA,TOSHIKO,THEOLA,TASHIA,TALITHA,SHERY,RUDY,RENETTA,REIKO,RASHEEDA,OMEGA,OBDULIA,MIKA,MELAINE,MEGGAN,MARTIN,MARLEN,MARGET,MARCELINE,MANA,MAGDALEN,LIBRADA,LEZLIE,LEXIE,LATASHIA,LASANDRA,KELLE,ISIDRA,ISA,INOCENCIA,GWYN,FRANCOISE,ERMINIA,ERINN,DIMPLE,DEVORA,CRISELDA,ARMANDA,ARIE,ARIANE,ANGELO,ANGELENA,ALLEN,ALIZA,ADRIENE,ADALINE,XOCHITL,TWANNA,TRAN,TOMIKO,TAMISHA,TAISHA,SUSY,SIU,RUTHA,ROXY,RHONA,RAYMOND,OTHA,NORIKO,NATASHIA,MERRIE,MELVIN,MARINDA,MARIKO,MARGERT,LORIS,LIZZETTE,LEISHA,KAILA,KA,JOANNIE,JERRICA,JENE,JANNET,JANEE,JACINDA,HERTA,ELENORE,DORETTA,DELAINE,DANIELL,CLAUDIE,CHINA,BRITTA,APOLONIA,AMBERLY,ALEASE,YURI,YUK,WEN,WANETA,UTE,TOMI,SHARRI,SANDIE,ROSELLE,REYNALDA,RAGUEL,PHYLICIA,PATRIA,OLIMPIA,ODELIA,MITZIE,MITCHELL,MISS,MINDA,MIGNON,MICA,MENDY,MARIVEL,MAILE,LYNETTA,LAVETTE,LAURYN,LATRISHA,LAKIESHA,KIERSTEN,KARY,JOSPHINE,JOLYN,JETTA,JANISE,JACQUIE,IVELISSE,GLYNIS,GIANNA,GAYNELLE,EMERALD,DEMETRIUS,DANYELL,DANILLE,DACIA,CORALEE,CHER,CEOLA,BRETT,BELL,ARIANNE,ALESHIA,YUNG,WILLIEMAE,TROY,TRINH,THORA,TAI,SVETLANA,SHERIKA,SHEMEKA,SHAUNDA,ROSELINE,RICKI,MELDA,MALLIE,LAVONNA,LATINA,LARRY,LAQUANDA,LALA,LACHELLE,KLARA,KANDIS,JOHNA,JEANMARIE,JAYE,HANG,GRAYCE,GERTUDE,EMERITA,EBONIE,CLORINDA,CHING,CHERY,CAROLA,BREANN,BLOSSOM,BERNARDINE,BECKI,ARLETHA,ARGELIA,ARA,ALITA,YULANDA,YON,YESSENIA,TOBI,TASIA,SYLVIE,SHIRL,SHIRELY,SHERIDAN,SHELLA,SHANTELLE,SACHA,ROYCE,REBECKA,REAGAN,PROVIDENCIA,PAULENE,MISHA,MIKI,MARLINE,MARICA,LORITA,LATOYIA,LASONYA,KERSTIN,KENDA,KEITHA,KATHRIN,JAYMIE,JACK,GRICELDA,GINETTE,ERYN,ELINA,ELFRIEDA,DANYEL,CHEREE,CHANELLE,BARRIE,AVERY,AURORE,ANNAMARIA,ALLEEN,AILENE,AIDE,YASMINE,VASHTI,VALENTINE,TREASA,TORY,TIFFANEY,SHERYLL,SHARIE,SHANAE,SAU,RAISA,PA,NEDA,MITSUKO,MIRELLA,MILDA,MARYANNA,MARAGRET,MABELLE,LUETTA,LORINA,LETISHA,LATARSHA,LANELLE,LAJUANA,KRISSY,KARLY,KARENA,JON,JESSIKA,JERICA,JEANELLE,JANUARY,JALISA,JACELYN,IZOLA,IVEY,GREGORY,EUNA,ETHA,DREW,DOMITILA,DOMINICA,DAINA,CREOLA,CARLI,CAMIE,BUNNY,BRITTNY,ASHANTI,ANISHA,ALEEN,ADAH,YASUKO,WINTER,VIKI,VALRIE,TONA,TINISHA,THI,TERISA,TATUM,TANEKA,SIMONNE,SHALANDA,SERITA,RESSIE,REFUGIA,PAZ,OLENE,NA,MERRILL,MARGHERITA,MANDIE,MAN,MAIRE,LYNDIA,LUCI,LORRIANE,LORETA,LEONIA,LAVONA,LASHAWNDA,LAKIA,KYOKO,KRYSTINA,KRYSTEN,KENIA,KELSI,JUDE,JEANICE,ISOBEL,GEORGIANN,GENNY,FELICIDAD,EILENE,DEON,DELOISE,DEEDEE,DANNIE,CONCEPTION,CLORA,CHERILYN,CHANG,CALANDRA,BERRY,ARMANDINA,ANISA,ULA,TIMOTHY,TIERA,THERESSA,STEPHANIA,SIMA,SHYLA,SHONTA,SHERA,SHAQUITA,SHALA,SAMMY,ROSSANA,NOHEMI,NERY,MORIAH,MELITA,MELIDA,MELANI,MARYLYNN,MARISHA,MARIETTE,MALORIE,MADELENE,LUDIVINA,LORIA,LORETTE,LORALEE,LIANNE,LEON,LAVENIA,LAURINDA,LASHON,KIT,KIMI,KEILA,KATELYNN,KAI,JONE,JOANE,JI,JAYNA,JANELLA,JA,HUE,HERTHA,FRANCENE,ELINORE,DESPINA,DELSIE,DEEDRA,CLEMENCIA,CARRY,CAROLIN,CARLOS,BULAH,BRITTANIE,BOK,BLONDELL,BIBI,BEAULAH,BEATA,ANNITA,AGRIPINA,VIRGEN,VALENE,UN,TWANDA,TOMMYE,TOI,TARRA,TARI,TAMMERA,SHAKIA,SADYE,RUTHANNE,ROCHEL,RIVKA,PURA,NENITA,NATISHA,MING,MERRILEE,MELODEE,MARVIS,LUCILLA,LEENA,LAVETA,LARITA,LANIE,KEREN,ILEEN,GEORGEANN,GENNA,GENESIS,FRIDA,EWA,EUFEMIA,EMELY,ELA,EDYTH,DEONNA,DEADRA,DARLENA,CHANELL,CHAN,CATHERN,CASSONDRA,CASSAUNDRA,BERNARDA,BERNA,ARLINDA,ANAMARIA,ALBERT,WESLEY,VERTIE,VALERI,TORRI,TATYANA,STASIA,SHERISE,SHERILL,SEASON,SCOTTIE,SANDA,RUTHE,ROSY,ROBERTO,ROBBI,RANEE,QUYEN,PEARLY,PALMIRA,ONITA,NISHA,NIESHA,NIDA,NEVADA,NAM,MERLYN,MAYOLA,MARYLOUISE,MARYLAND,MARX,MARTH,MARGENE,MADELAINE,LONDA,LEONTINE,LEOMA,LEIA,LAWRENCE,LAURALEE,LANORA,LAKITA,KIYOKO,KETURAH,KATELIN,KAREEN,JONIE,JOHNETTE,JENEE,JEANETT,IZETTA,HIEDI,HEIKE,HASSIE,HAROLD,GIUSEPPINA,GEORGANN,FIDELA,FERNANDE,ELWANDA,ELLAMAE,ELIZ,DUSTI,DOTTY,CYNDY,CORALIE,CELESTA,ARGENTINA,ALVERTA,XENIA,WAVA,VANETTA,TORRIE,TASHINA,TANDY,TAMBRA,TAMA,STEPANIE,SHILA,SHAUNTA,SHARAN,SHANIQUA,SHAE,SETSUKO,SERAFINA,SANDEE,ROSAMARIA,PRISCILA,OLINDA,NADENE,MUOI,MICHELINA,MERCEDEZ,MARYROSE,MARIN,MARCENE,MAO,MAGALI,MAFALDA,LOGAN,LINN,LANNIE,KAYCE,KAROLINE,KAMILAH,KAMALA,JUSTA,JOLINE,JENNINE,JACQUETTA,IRAIDA,GERALD,GEORGEANNA,FRANCHESCA,FAIRY,EMELINE,ELANE,EHTEL,EARLIE,DULCIE,DALENE,CRIS,CLASSIE,CHERE,CHARIS,CAROYLN,CARMINA,CARITA,BRIAN,BETHANIE,AYAKO,ARICA,AN,ALYSA,ALESSANDRA,AKILAH,ADRIEN,ZETTA,YOULANDA,YELENA,YAHAIRA,XUAN,WENDOLYN,VICTOR,TIJUANA,TERRELL,TERINA,TERESIA,SUZI,SUNDAY,SHERELL,SHAVONDA,SHAUNTE,SHARDA,SHAKITA,SENA,RYANN,RUBI,RIVA,REGINIA,REA,RACHAL,PARTHENIA,PAMULA,MONNIE,MONET,MICHAELE,MELIA,MARINE,MALKA,MAISHA,LISANDRA,LEO,LEKISHA,LEAN,LAURENCE,LAKENDRA,KRYSTIN,KORTNEY,KIZZIE,KITTIE,KERA,KENDAL,KEMBERLY,KANISHA,JULENE,JULE,JOSHUA,JOHANNE,JEFFREY,JAMEE,HAN,HALLEY,GIDGET,GALINA,FREDRICKA,FLETA,FATIMAH,EUSEBIA,ELZA,ELEONORE,DORTHEY,DORIA,DONELLA,DINORAH,DELORSE,CLARETHA,CHRISTINIA,CHARLYN,BONG,BELKIS,AZZIE,ANDERA,AIKO,ADENA,YER,YAJAIRA,WAN,VANIA,ULRIKE,TOSHIA,TIFANY,STEFANY,SHIZUE,SHENIKA,SHAWANNA,SHAROLYN,SHARILYN,SHAQUANA,SHANTAY,SEE,ROZANNE,ROSELEE,RICKIE,REMONA,REANNA,RAELENE,QUINN,PHUNG,PETRONILA,NATACHA,NANCEY,MYRL,MIYOKO,MIESHA,MERIDETH,MARVELLA,MARQUITTA,MARHTA,MARCHELLE,LIZETH,LIBBIE,LAHOMA,LADAWN,KINA,KATHELEEN,KATHARYN,KARISA,KALEIGH,JUNIE,JULIEANN,JOHNSIE,JANEAN,JAIMEE,JACKQUELINE,HISAKO,HERMA,HELAINE,GWYNETH,GLENN,GITA,EUSTOLIA,EMELINA,ELIN,EDRIS,DONNETTE,DONNETTA,DIERDRE,DENAE,DARCEL,CLAUDE,CLARISA,CINDERELLA,CHIA,CHARLESETTA,CHARITA,CELSA,CASSY,CASSI,CARLEE,BRUNA,BRITTANEY,BRANDE,BILLI,BAO,ANTONETTA,ANGLA,ANGELYN,ANALISA,ALANE,WENONA,WENDIE,VERONIQUE,VANNESA,TOBIE,TEMPIE,SUMIKO,SULEMA,SPARKLE,SOMER,SHEBA,SHAYNE,SHARICE,SHANEL,SHALON,SAGE,ROY,ROSIO,ROSELIA,RENAY,REMA,REENA,PORSCHE,PING,PEG,OZIE,ORETHA,ORALEE,ODA,NU,NGAN,NAKESHA,MILLY,MARYBELLE,MARLIN,MARIS,MARGRETT,MARAGARET,MANIE,LURLENE,LILLIA,LIESELOTTE,LAVELLE,LASHAUNDA,LAKEESHA,KEITH,KAYCEE,KALYN,JOYA,JOETTE,JENAE,JANIECE,ILLA,GRISEL,GLAYDS,GENEVIE,GALA,FREDDA,FRED,ELMER,ELEONOR,DEBERA,DEANDREA,DAN,CORRINNE,CORDIA,CONTESSA,COLENE,CLEOTILDE,CHARLOTT,CHANTAY,CECILLE,BEATRIS,AZALEE,ARLEAN,ARDATH,ANJELICA,ANJA,ALFREDIA,ALEISHA,ADAM,ZADA,YUONNE,XIAO,WILLODEAN,WHITLEY,VENNIE,VANNA,TYISHA,TOVA,TORIE,TONISHA,TILDA,TIEN,TEMPLE,SIRENA,SHERRIL,SHANTI,SHAN,SENAIDA,SAMELLA,ROBBYN,RENDA,REITA,PHEBE,PAULITA,NOBUKO,NGUYET,NEOMI,MOON,MIKAELA,MELANIA,MAXIMINA,MARG,MAISIE,LYNNA,LILLI,LAYNE,LASHAUN,LAKENYA,LAEL,KIRSTIE,KATHLINE,KASHA,KARLYN,KARIMA,JOVAN,JOSEFINE,JENNELL,JACQUI,JACKELYN,HYO,HIEN,GRAZYNA,FLORRIE,FLORIA,ELEONORA,DWANA,DORLA,DONG,DELMY,DEJA,DEDE,DANN,CRYSTA,CLELIA,CLARIS,CLARENCE,CHIEKO,CHERLYN,CHERELLE,CHARMAIN,CHARA,CAMMY,BEE,ARNETTE,ARDELLE,ANNIKA,AMIEE,AMEE,ALLENA,YVONE,YUKI,YOSHIE,YEVETTE,YAEL,WILLETTA,VONCILE,VENETTA,TULA,TONETTE,TIMIKA,TEMIKA,TELMA,TEISHA,TAREN,TA,STACEE,SHIN,SHAWNTA,SATURNINA,RICARDA,POK,PASTY,ONIE,NUBIA,MORA,MIKE,MARIELLE,MARIELLA,MARIANELA,MARDELL,MANY,LUANNA,LOISE,LISABETH,LINDSY,LILLIANA,LILLIAM,LELAH,LEIGHA,LEANORA,LANG,KRISTEEN,KHALILAH,KEELEY,KANDRA,JUNKO,JOAQUINA,JERLENE,JANI,JAMIKA,JAME,HSIU,HERMILA,GOLDEN,GENEVIVE,EVIA,EUGENA,EMMALINE,ELFREDA,ELENE,DONETTE,DELCIE,DEEANNA,DARCEY,CUC,CLARINDA,CIRA,CHAE,CELINDA,CATHERYN,CATHERIN,CASIMIRA,CARMELIA,CAMELLIA,BREANA,BOBETTE,BERNARDINA,BEBE,BASILIA,ARLYNE,AMAL,ALAYNA,ZONIA,ZENIA,YURIKO,YAEKO,WYNELL,WILLOW,WILLENA,VERNIA,TU,TRAVIS,TORA,TERRILYN,TERICA,TENESHA,TAWNA,TAJUANA,TAINA,STEPHNIE,SONA,SOL,SINA,SHONDRA,SHIZUKO,SHERLENE,SHERICE,SHARIKA,ROSSIE,ROSENA,RORY,RIMA,RIA,RHEBA,RENNA,PETER,NATALYA,NANCEE,MELODI,MEDA,MAXIMA,MATHA,MARKETTA,MARICRUZ,MARCELENE,MALVINA,LUBA,LOUETTA,LEIDA,LECIA,LAURAN,LASHAWNA,LAINE,KHADIJAH,KATERINE,KASI,KALLIE,JULIETTA,JESUSITA,JESTINE,JESSIA,JEREMY,JEFFIE,JANYCE,ISADORA,GEORGIANNE,FIDELIA,EVITA,EURA,EULAH,ESTEFANA,ELSY,ELIZABET,ELADIA,DODIE,DION,DIA,DENISSE,DELORAS,DELILA,DAYSI,DAKOTA,CURTIS,CRYSTLE,CONCHA,COLBY,CLARETTA,CHU,CHRISTIA,CHARLSIE,CHARLENA,CARYLON,BETTYANN,ASLEY,ASHLEA,AMIRA,AI,AGUEDA,AGNUS,YUETTE,VINITA,VICTORINA,TYNISHA,TREENA,TOCCARA,TISH,THOMASENA,TEGAN,SOILA,SHILOH,SHENNA,SHARMAINE,SHANTAE,SHANDI,SEPTEMBER,SARAN,SARAI,SANA,SAMUEL,SALLEY,ROSETTE,ROLANDE,REGINE,OTELIA,OSCAR,OLEVIA,NICHOLLE,NECOLE,NAIDA,MYRTA,MYESHA,MITSUE,MINTA,MERTIE,MARGY,MAHALIA,MADALENE,LOVE,LOURA,LOREAN,LEWIS,LESHA,LEONIDA,LENITA,LAVONE,LASHELL,LASHANDRA,LAMONICA,KIMBRA,KATHERINA,KARRY,KANESHA,JULIO,JONG,JENEVA,JAQUELYN,HWA,GILMA,GHISLAINE,GERTRUDIS,FRANSISCA,FERMINA,ETTIE,ETSUKO,ELLIS,ELLAN,ELIDIA,EDRA,DORETHEA,DOREATHA,DENYSE,DENNY,DEETTA,DAINE,CYRSTAL,CORRIN,CAYLA,CARLITA,CAMILA,BURMA,BULA,BUENA,BLAKE,BARABARA,AVRIL,AUSTIN,ALAINE,ZANA,WILHEMINA,WANETTA,VIRGIL,VI,VERONIKA,VERNON,VERLINE,VASILIKI,TONITA,TISA,TEOFILA,TAYNA,TAUNYA,TANDRA,TAKAKO,SUNNI,SUANNE,SIXTA,SHARELL,SEEMA,RUSSELL,ROSENDA,ROBENA,RAYMONDE,PEI,PAMILA,OZELL,NEIDA,NEELY,MISTIE,MICHA,MERISSA,MAURITA,MARYLN,MARYETTA,MARSHALL,MARCELL,MALENA,MAKEDA,MADDIE,LOVETTA,LOURIE,LORRINE,LORILEE,LESTER,LAURENA,LASHAY,LARRAINE,LAREE,LACRESHA,KRISTLE,KRISHNA,KEVA,KEIRA,KAROLE,JOIE,JINNY,JEANNETTA,JAMA,HEIDY,GILBERTE,GEMA,FAVIOLA,EVELYNN,ENDA,ELLI,ELLENA,DIVINA,DAGNY,COLLENE,CODI,CINDIE,CHASSIDY,CHASIDY,CATRICE,CATHERINA,CASSEY,CAROLL,CARLENA,CANDRA,CALISTA,BRYANNA,BRITTENY,BEULA,BARI,AUDRIE,AUDRIA,ARDELIA,ANNELLE,ANGILA,ALONA,ALLYN,DOUGLAS,ROGER,JONATHAN,RALPH,NICHOLAS,BENJAMIN,BRUCE,HARRY,WAYNE,STEVE,HOWARD,ERNEST,PHILLIP,TODD,CRAIG,ALAN,PHILIP,EARL,DANNY,BRYAN,STANLEY,LEONARD,NATHAN,MANUEL,RODNEY,MARVIN,VINCENT,JEFFERY,JEFF,CHAD,JACOB,ALFRED,BRADLEY,HERBERT,FREDERICK,EDWIN,DON,RICKY,RANDALL,BARRY,BERNARD,LEROY,MARCUS,THEODORE,CLIFFORD,MIGUEL,JIM,TOM,CALVIN,BILL,LLOYD,DEREK,WARREN,DARRELL,JEROME,FLOYD,ALVIN,TIM,GORDON,GREG,JORGE,DUSTIN,PEDRO,DERRICK,ZACHARY,HERMAN,GLEN,HECTOR,RICARDO,RICK,BRENT,RAMON,GILBERT,MARC,REGINALD,RUBEN,NATHANIEL,RAFAEL,EDGAR,MILTON,RAUL,BEN,CHESTER,DUANE,FRANKLIN,BRAD,RON,ROLAND,ARNOLD,HARVEY,JARED,ERIK,DARRYL,NEIL,JAVIER,FERNANDO,CLINTON,TED,MATHEW,TYRONE,DARREN,LANCE,KURT,ALLAN,NELSON,GUY,CLAYTON,HUGH,MAX,DWAYNE,DWIGHT,ARMANDO,FELIX,EVERETT,IAN,WALLACE,KEN,BOB,ALFREDO,ALBERTO,DAVE,IVAN,BYRON,ISAAC,MORRIS,CLIFTON,WILLARD,ROSS,ANDY,SALVADOR,KIRK,SERGIO,SETH,KENT,TERRANCE,EDUARDO,TERRENCE,ENRIQUE,WADE,STUART,FREDRICK,ARTURO,ALEJANDRO,NICK,LUTHER,WENDELL,JEREMIAH,JULIUS,OTIS,TREVOR,OLIVER,LUKE,HOMER,GERARD,DOUG,KENNY,HUBERT,LYLE,MATT,ALFONSO,ORLANDO,REX,CARLTON,ERNESTO,NEAL,PABLO,LORENZO,OMAR,WILBUR,GRANT,HORACE,RODERICK,ABRAHAM,WILLIS,RICKEY,ANDRES,CESAR,JOHNATHAN,MALCOLM,RUDOLPH,DAMON,KELVIN,PRESTON,ALTON,ARCHIE,MARCO,WM,PETE,RANDOLPH,GARRY,GEOFFREY,JONATHON,FELIPE,GERARDO,ED,DOMINIC,DELBERT,COLIN,GUILLERMO,EARNEST,LUCAS,BENNY,SPENCER,RODOLFO,MYRON,EDMUND,GARRETT,SALVATORE,CEDRIC,LOWELL,GREGG,SHERMAN,WILSON,SYLVESTER,ROOSEVELT,ISRAEL,JERMAINE,FORREST,WILBERT,LELAND,SIMON,CLARK,IRVING,BRYANT,OWEN,RUFUS,WOODROW,KRISTOPHER,MACK,LEVI,MARCOS,GUSTAVO,JAKE,LIONEL,GILBERTO,CLINT,NICOLAS,ISMAEL,ORVILLE,ERVIN,DEWEY,AL,WILFRED,JOSH,HUGO,IGNACIO,CALEB,TOMAS,SHELDON,ERICK,STEWART,DOYLE,DARREL,ROGELIO,TERENCE,SANTIAGO,ALONZO,ELIAS,BERT,ELBERT,RAMIRO,CONRAD,NOAH,GRADY,PHIL,CORNELIUS,LAMAR,ROLANDO,CLAY,PERCY,DEXTER,BRADFORD,DARIN,AMOS,MOSES,IRVIN,SAUL,ROMAN,RANDAL,TIMMY,DARRIN,WINSTON,BRENDAN,ABEL,DOMINICK,BOYD,EMILIO,ELIJAH,DOMINGO,EMMETT,MARLON,EMANUEL,JERALD,EDMOND,EMIL,DEWAYNE,WILL,OTTO,TEDDY,REYNALDO,BRET,JESS,TRENT,HUMBERTO,EMMANUEL,STEPHAN,VICENTE,LAMONT,GARLAND,MILES,EFRAIN,HEATH,RODGER,HARLEY,ETHAN,ELDON,ROCKY,PIERRE,JUNIOR,FREDDY,ELI,BRYCE,ANTOINE,STERLING,CHASE,GROVER,ELTON,CLEVELAND,DYLAN,CHUCK,DAMIAN,REUBEN,STAN,AUGUST,LEONARDO,JASPER,RUSSEL,ERWIN,BENITO,HANS,MONTE,BLAINE,ERNIE,CURT,QUENTIN,AGUSTIN,MURRAY,JAMAL,ADOLFO,HARRISON,TYSON,BURTON,BRADY,ELLIOTT,WILFREDO,BART,JARROD,VANCE,DENIS,DAMIEN,JOAQUIN,HARLAN,DESMOND,ELLIOT,DARWIN,GREGORIO,BUDDY,XAVIER,KERMIT,ROSCOE,ESTEBAN,ANTON,SOLOMON,SCOTTY,NORBERT,ELVIN,WILLIAMS,NOLAN,ROD,QUINTON,HAL,BRAIN,ROB,ELWOOD,KENDRICK,DARIUS,MOISES,FIDEL,THADDEUS,CLIFF,MARCEL,JACKSON,RAPHAEL,BRYON,ARMAND,ALVARO,JEFFRY,DANE,JOESPH,THURMAN,NED,RUSTY,MONTY,FABIAN,REGGIE,MASON,GRAHAM,ISAIAH,VAUGHN,GUS,LOYD,DIEGO,ADOLPH,NORRIS,MILLARD,ROCCO,GONZALO,DERICK,RODRIGO,WILEY,RIGOBERTO,ALPHONSO,TY,NOE,VERN,REED,JEFFERSON,ELVIS,BERNARDO,MAURICIO,HIRAM,DONOVAN,BASIL,RILEY,NICKOLAS,MAYNARD,SCOT,VINCE,QUINCY,EDDY,SEBASTIAN,FEDERICO,ULYSSES,HERIBERTO,DONNELL,COLE,DAVIS,GAVIN,EMERY,WARD,ROMEO,JAYSON,DANTE,CLEMENT,COY,MAXWELL,JARVIS,BRUNO,ISSAC,DUDLEY,BROCK,SANFORD,CARMELO,BARNEY,NESTOR,STEFAN,DONNY,ART,LINWOOD,BEAU,WELDON,GALEN,ISIDRO,TRUMAN,DELMAR,JOHNATHON,SILAS,FREDERIC,DICK,IRWIN,MERLIN,CHARLEY,MARCELINO,HARRIS,CARLO,TRENTON,KURTIS,HUNTER,AURELIO,WINFRED,VITO,COLLIN,DENVER,CARTER,LEONEL,EMORY,PASQUALE,MOHAMMAD,MARIANO,DANIAL,LANDON,DIRK,BRANDEN,ADAN,BUFORD,GERMAN,WILMER,EMERSON,ZACHERY,FLETCHER,JACQUES,ERROL,DALTON,MONROE,JOSUE,EDWARDO,BOOKER,WILFORD,SONNY,SHELTON,CARSON,THERON,RAYMUNDO,DAREN,HOUSTON,ROBBY,LINCOLN,GENARO,BENNETT,OCTAVIO,CORNELL,HUNG,ARRON,ANTONY,HERSCHEL,GIOVANNI,GARTH,CYRUS,CYRIL,RONNY,LON,FREEMAN,DUNCAN,KENNITH,CARMINE,ERICH,CHADWICK,WILBURN,RUSS,REID,MYLES,ANDERSON,MORTON,JONAS,FOREST,MITCHEL,MERVIN,ZANE,RICH,JAMEL,LAZARO,ALPHONSE,RANDELL,MAJOR,JARRETT,BROOKS,ABDUL,LUCIANO,SEYMOUR,EUGENIO,MOHAMMED,VALENTIN,CHANCE,ARNULFO,LUCIEN,FERDINAND,THAD,EZRA,ALDO,RUBIN,ROYAL,MITCH,EARLE,ABE,WYATT,MARQUIS,LANNY,KAREEM,JAMAR,BORIS,ISIAH,EMILE,ELMO,ARON,LEOPOLDO,EVERETTE,JOSEF,ELOY,RODRICK,REINALDO,LUCIO,JERROD,WESTON,HERSHEL,BARTON,PARKER,LEMUEL,BURT,JULES,GIL,ELISEO,AHMAD,NIGEL,EFREN,ANTWAN,ALDEN,MARGARITO,COLEMAN,DINO,OSVALDO,LES,DEANDRE,NORMAND,KIETH,TREY,NORBERTO,NAPOLEON,JEROLD,FRITZ,ROSENDO,MILFORD,CHRISTOPER,ALFONZO,LYMAN,JOSIAH,BRANT,WILTON,RICO,JAMAAL,DEWITT,BRENTON,OLIN,FOSTER,FAUSTINO,CLAUDIO,JUDSON,GINO,EDGARDO,ALEC,TANNER,JARRED,DONN,TAD,PRINCE,PORFIRIO,ODIS,LENARD,CHAUNCEY,TOD,MEL,MARCELO,KORY,AUGUSTUS,KEVEN,HILARIO,BUD,SAL,ORVAL,MAURO,ZACHARIAH,OLEN,ANIBAL,MILO,JED,DILLON,AMADO,NEWTON,LENNY,RICHIE,HORACIO,BRICE,MOHAMED,DELMER,DARIO,REYES,MAC,JONAH,JERROLD,ROBT,HANK,RUPERT,ROLLAND,KENTON,DAMION,ANTONE,WALDO,FREDRIC,BRADLY,KIP,BURL,WALKER,TYREE,JEFFEREY,AHMED,WILLY,STANFORD,OREN,NOBLE,MOSHE,MIKEL,ENOCH,BRENDON,QUINTIN,JAMISON,FLORENCIO,DARRICK,TOBIAS,HASSAN,GIUSEPPE,DEMARCUS,CLETUS,TYRELL,LYNDON,KEENAN,WERNER,GERALDO,COLUMBUS,CHET,BERTRAM,MARKUS,HUEY,HILTON,DWAIN,DONTE,TYRON,OMER,ISAIAS,HIPOLITO,FERMIN,ADALBERTO,BO,BARRETT,TEODORO,MCKINLEY,MAXIMO,GARFIELD,RALEIGH,LAWERENCE,ABRAM,RASHAD,KING,EMMITT,DARON,SAMUAL,MIQUEL,EUSEBIO,DOMENIC,DARRON,BUSTER,WILBER,RENATO,JC,HOYT,HAYWOOD,EZEKIEL,CHAS,FLORENTINO,ELROY,CLEMENTE,ARDEN,NEVILLE,EDISON,DESHAWN,NATHANIAL,JORDON,DANILO,CLAUD,SHERWOOD,RAYMON,RAYFORD,CRISTOBAL,AMBROSE,TITUS,HYMAN,FELTON,EZEQUIEL,ERASMO,STANTON,LONNY,LEN,IKE,MILAN,LINO,JAROD,HERB,ANDREAS,WALTON,RHETT,PALMER,DOUGLASS,CORDELL,OSWALDO,ELLSWORTH,VIRGILIO,TONEY,NATHANAEL,DEL,BENEDICT,MOSE,JOHNSON,ISREAL,GARRET,FAUSTO,ASA,ARLEN,ZACK,WARNER,MODESTO,FRANCESCO,MANUAL,GAYLORD,GASTON,FILIBERTO,DEANGELO,MICHALE,GRANVILLE,WES,MALIK,ZACKARY,TUAN,ELDRIDGE,CRISTOPHER,CORTEZ,ANTIONE,MALCOM,LONG,KOREY,JOSPEH,COLTON,WAYLON,VON,HOSEA,SHAD,SANTO,RUDOLF,ROLF,REY,RENALDO,MARCELLUS,LUCIUS,KRISTOFER,BOYCE,BENTON,HAYDEN,HARLAND,ARNOLDO,RUEBEN,LEANDRO,KRAIG,JERRELL,JEROMY,HOBERT,CEDRICK,ARLIE,WINFORD,WALLY,LUIGI,KENETH,JACINTO,GRAIG,FRANKLYN,EDMUNDO,SID,PORTER,LEIF,JERAMY,BUCK,WILLIAN,VINCENZO,SHON,LYNWOOD,JERE,HAI,ELDEN,DORSEY,DARELL,BRODERICK,ALONSO \ No newline at end of file diff --git a/network.txt b/network.txt new file mode 100644 index 0000000..19d7ba3 --- /dev/null +++ b/network.txt @@ -0,0 +1,40 @@ +-,-,-,427,668,495,377,678,-,177,-,-,870,-,869,624,300,609,131,-,251,-,-,-,856,221,514,-,591,762,182,56,-,884,412,273,636,-,-,774 +-,-,262,-,-,508,472,799,-,956,578,363,940,143,-,162,122,910,-,729,802,941,922,573,531,539,667,607,-,920,-,-,315,649,937,-,185,102,636,289 +-,262,-,-,926,-,958,158,647,47,621,264,81,-,402,813,649,386,252,391,264,637,349,-,-,-,108,-,727,225,578,699,-,898,294,-,575,168,432,833 +427,-,-,-,366,-,-,635,-,32,962,468,893,854,718,427,448,916,258,-,760,909,529,311,404,-,-,588,680,875,-,615,-,409,758,221,-,-,76,257 +668,-,926,366,-,-,-,250,268,-,503,944,-,677,-,727,793,457,981,191,-,-,-,351,969,925,987,328,282,589,-,873,477,-,-,19,450,-,-,- +495,508,-,-,-,-,-,765,711,819,305,302,926,-,-,582,-,861,-,683,293,-,-,66,-,27,-,-,290,-,786,-,554,817,33,-,54,506,386,381 +377,472,958,-,-,-,-,-,-,120,42,-,134,219,457,639,538,374,-,-,-,966,-,-,-,-,-,449,120,797,358,232,550,-,305,997,662,744,686,239 +678,799,158,635,250,765,-,-,-,35,-,106,385,652,160,-,890,812,605,953,-,-,-,79,-,712,613,312,452,-,978,900,-,901,-,-,225,533,770,722 +-,-,647,-,268,711,-,-,-,283,-,172,-,663,236,36,403,286,986,-,-,810,761,574,53,793,-,-,777,330,936,883,286,-,174,-,-,-,828,711 +177,956,47,32,-,819,120,35,283,-,50,-,565,36,767,684,344,489,565,-,-,103,810,463,733,665,494,644,863,25,385,-,342,470,-,-,-,730,582,468 +-,578,621,962,503,305,42,-,-,50,-,155,519,-,-,256,990,801,154,53,474,650,402,-,-,-,966,-,-,406,989,772,932,7,-,823,391,-,-,933 +-,363,264,468,944,302,-,106,172,-,155,-,-,-,380,438,-,41,266,-,-,104,867,609,-,270,861,-,-,165,-,675,250,686,995,366,191,-,433,- +870,940,81,893,-,926,134,385,-,565,519,-,-,313,851,-,-,-,248,220,-,826,359,829,-,234,198,145,409,68,359,-,814,218,186,-,-,929,203,- +-,143,-,854,677,-,219,652,663,36,-,-,313,-,132,-,433,598,-,-,168,870,-,-,-,128,437,-,383,364,966,227,-,-,807,993,-,-,526,17 +869,-,402,718,-,-,457,160,236,767,-,380,851,132,-,-,596,903,613,730,-,261,-,142,379,885,89,-,848,258,112,-,900,-,-,818,639,268,600,- +624,162,813,427,727,582,639,-,36,684,256,438,-,-,-,-,539,379,664,561,542,-,999,585,-,-,321,398,-,-,950,68,193,-,697,-,390,588,848,- +300,122,649,448,793,-,538,890,403,344,990,-,-,433,596,539,-,-,73,-,318,-,-,500,-,968,-,291,-,-,765,196,504,757,-,542,-,395,227,148 +609,910,386,916,457,861,374,812,286,489,801,41,-,598,903,379,-,-,-,946,136,399,-,941,707,156,757,258,251,-,807,-,-,-,461,501,-,-,616,- +131,-,252,258,981,-,-,605,986,565,154,266,248,-,613,664,73,-,-,686,-,-,575,627,817,282,-,698,398,222,-,649,-,-,-,-,-,654,-,- +-,729,391,-,191,683,-,953,-,-,53,-,220,-,730,561,-,946,686,-,-,389,729,553,304,703,455,857,260,-,991,182,351,477,867,-,-,889,217,853 +251,802,264,760,-,293,-,-,-,-,474,-,-,168,-,542,318,136,-,-,-,-,392,-,-,-,267,407,27,651,80,927,-,974,977,-,-,457,117,- +-,941,637,909,-,-,966,-,810,103,650,104,826,870,261,-,-,399,-,389,-,-,-,202,-,-,-,-,867,140,403,962,785,-,511,-,1,-,707,- +-,922,349,529,-,-,-,-,761,810,402,867,359,-,-,999,-,-,575,729,392,-,-,388,939,-,959,-,83,463,361,-,-,512,931,-,224,690,369,- +-,573,-,311,351,66,-,79,574,463,-,609,829,-,142,585,500,941,627,553,-,202,388,-,164,829,-,620,523,639,936,-,-,490,-,695,-,505,109,- +856,531,-,404,969,-,-,-,53,733,-,-,-,-,379,-,-,707,817,304,-,-,939,164,-,-,616,716,728,-,889,349,-,963,150,447,-,292,586,264 +221,539,-,-,925,27,-,712,793,665,-,270,234,128,885,-,968,156,282,703,-,-,-,829,-,-,-,822,-,-,-,736,576,-,697,946,443,-,205,194 +514,667,108,-,987,-,-,613,-,494,966,861,198,437,89,321,-,757,-,455,267,-,959,-,616,-,-,-,349,156,339,-,102,790,359,-,439,938,809,260 +-,607,-,588,328,-,449,312,-,644,-,-,145,-,-,398,291,258,698,857,407,-,-,620,716,822,-,-,293,486,943,-,779,-,6,880,116,775,-,947 +591,-,727,680,282,290,120,452,777,863,-,-,409,383,848,-,-,251,398,260,27,867,83,523,728,-,349,293,-,212,684,505,341,384,9,992,507,48,-,- +762,920,225,875,589,-,797,-,330,25,406,165,68,364,258,-,-,-,222,-,651,140,463,639,-,-,156,486,212,-,-,349,723,-,-,186,-,36,240,752 +182,-,578,-,-,786,358,978,936,385,989,-,359,966,112,950,765,807,-,991,80,403,361,936,889,-,339,943,684,-,-,965,302,676,725,-,327,134,-,147 +56,-,699,615,873,-,232,900,883,-,772,675,-,227,-,68,196,-,649,182,927,962,-,-,349,736,-,-,505,349,965,-,474,178,833,-,-,555,853,- +-,315,-,-,477,554,550,-,286,342,932,250,814,-,900,193,504,-,-,351,-,785,-,-,-,576,102,779,341,723,302,474,-,689,-,-,-,451,-,- +884,649,898,409,-,817,-,901,-,470,7,686,218,-,-,-,757,-,-,477,974,-,512,490,963,-,790,-,384,-,676,178,689,-,245,596,445,-,-,343 +412,937,294,758,-,33,305,-,174,-,-,995,186,807,-,697,-,461,-,867,977,511,931,-,150,697,359,6,9,-,725,833,-,245,-,949,-,270,-,112 +273,-,-,221,19,-,997,-,-,-,823,366,-,993,818,-,542,501,-,-,-,-,-,695,447,946,-,880,992,186,-,-,-,596,949,-,91,-,768,273 +636,185,575,-,450,54,662,225,-,-,391,191,-,-,639,390,-,-,-,-,-,1,224,-,-,443,439,116,507,-,327,-,-,445,-,91,-,248,-,344 +-,102,168,-,-,506,744,533,-,730,-,-,929,-,268,588,395,-,654,889,457,-,690,505,292,-,938,775,48,36,134,555,451,-,270,-,248,-,371,680 +-,636,432,76,-,386,686,770,828,582,-,433,203,526,600,848,227,616,-,217,117,707,369,109,586,205,809,-,-,240,-,853,-,-,-,768,-,371,-,540 +774,289,833,257,-,381,239,722,711,468,933,-,-,17,-,-,148,-,-,853,-,-,-,-,264,194,260,947,-,752,147,-,-,343,112,273,344,680,540,- diff --git a/poker.txt b/poker.txt new file mode 100644 index 0000000..9ab0024 --- /dev/null +++ b/poker.txt @@ -0,0 +1,1000 @@ +8C TS KC 9H 4S 7D 2S 5D 3S AC +5C AD 5D AC 9C 7C 5H 8D TD KS +3H 7H 6S KC JS QH TD JC 2D 8S +TH 8H 5C QS TC 9H 4D JC KS JS +7C 5H KC QH JD AS KH 4C AD 4S +5H KS 9C 7D 9H 8D 3S 5D 5C AH +6H 4H 5C 3H 2H 3S QH 5S 6S AS +TD 8C 4H 7C TC KC 4C 3H 7S KS +7C 9C 6D KD 3H 4C QS QC AC KH +JC 6S 5H 2H 2D KD 9D 7C AS JS +AD QH TH 9D 8H TS 6D 3S AS AC +2H 4S 5C 5S TC KC JD 6C TS 3C +QD AS 6H JS 2C 3D 9H KC 4H 8S +KD 8S 9S 7C 2S 3S 6D 6S 4H KC +3C 8C 2D 7D 4D 9S 4S QH 4H JD +8C KC 7S TC 2D TS 8H QD AC 5C +3D KH QD 6C 6S AD AS 8H 2H QS +6S 8D 4C 8S 6C QH TC 6D 7D 9D +2S 8D 8C 4C TS 9S 9D 9C AC 3D +3C QS 2S 4H JH 3D 2D TD 8S 9H +5H QS 8S 6D 3C 8C JD AS 7H 7D +6H TD 9D AS JH 6C QC 9S KD JC +AH 8S QS 4D TH AC TS 3C 3D 5C +5S 4D JS 3D 8H 6C TS 3S AD 8C +6D 7C 5D 5H 3S 5C JC 2H 5S 3D +5H 6H 2S KS 3D 5D JD 7H JS 8H +KH 4H AS JS QS QC TC 6D 7C KS +3D QS TS 2H JS 4D AS 9S JC KD +QD 5H 4D 5D KH 7H 3D JS KD 4H +2C 9H 6H 5C 9D 6C JC 2D TH 9S +7D 6D AS QD JH 4D JS 7C QS 5C +3H KH QD AD 8C 8H 3S TH 9D 5S +AH 9S 4D 9D 8S 4H JS 3C TC 8D +2C KS 5H QD 3S TS 9H AH AD 8S +5C 7H 5D KD 9H 4D 3D 2D KS AD +KS KC 9S 6D 2C QH 9D 9H TS TC +9C 6H 5D QH 4D AD 6D QC JS KH +9S 3H 9D JD 5C 4D 9H AS TC QH +2C 6D JC 9C 3C AD 9S KH 9D 7D +KC 9C 7C JC JS KD 3H AS 3C 7D +QD KH QS 2C 3S 8S 8H 9H 9C JC +QH 8D 3C KC 4C 4H 6D AD 9H 9D +3S KS QS 7H KH 7D 5H 5D JD AD +2H 2C 6H TH TC 7D 8D 4H 8C AS +4S 2H AC QC 3S 6D TH 4D 4C KH +4D TC KS AS 7C 3C 6D 2D 9H 6C +8C TD 5D QS 2C 7H 4C 9C 3H 9H +5H JH TS 7S TD 6H AD QD 8H 8S +5S AD 9C 8C 7C 8D 5H 9D 8S 2S +4H KH KS 9S 2S KC 5S AD 4S 7D +QS 9C QD 6H JS 5D AC 8D 2S AS +KH AC JC 3S 9D 9S 3C 9C 5S JS +AD 3C 3D KS 3S 5C 9C 8C TS 4S +JH 8D 5D 6H KD QS QD 3D 6C KC +8S JD 6C 3S 8C TC QC 3C QH JS +KC JC 8H 2S 9H 9C JH 8S 8C 9S +8S 2H QH 4D QC 9D KC AS TH 3C +8S 6H TH 7C 2H 6S 3C 3H AS 7S +QH 5S JS 4H 5H TS 8H AH AC JC +9D 8H 2S 4S TC JC 3C 7H 3H 5C +3D AD 3C 3S 4C QC AS 5D TH 8C +6S 9D 4C JS KH AH TS JD 8H AD +4C 6S 9D 7S AC 4D 3D 3S TC JD +AD 7H 6H 4H JH KC TD TS 7D 6S +8H JH TC 3S 8D 8C 9S 2C 5C 4D +2C 9D KC QH TH QS JC 9C 4H TS +QS 3C QD 8H KH 4H 8D TD 8S AC +7C 3C TH 5S 8H 8C 9C JD TC KD +QC TC JD TS 8C 3H 6H KD 7C TD +JH QS KS 9C 6D 6S AS 9H KH 6H +2H 4D AH 2D JH 6H TD 5D 4H JD +KD 8C 9S JH QD JS 2C QS 5C 7C +4S TC 7H 8D 2S 6H 7S 9C 7C KC +8C 5D 7H 4S TD QC 8S JS 4H KS +AD 8S JH 6D TD KD 7C 6C 2D 7D +JC 6H 6S JS 4H QH 9H AH 4C 3C +6H 5H AS 7C 7S 3D KH KC 5D 5C +JC 3D TD AS 4D 6D 6S QH JD KS +8C 7S 8S QH 2S JD 5C 7H AH QD +8S 3C 6H 6C 2C 8D TD 7D 4C 4D +5D QH KH 7C 2S 7H JS 6D QC QD +AD 6C 6S 7D TH 6H 2H 8H KH 4H +KS JS KD 5D 2D KH 7D 9C 8C 3D +9C 6D QD 3C KS 3S 7S AH JD 2D +AH QH AS JC 8S 8H 4C KC TH 7D +JC 5H TD 7C 5D KD 4C AD 8H JS +KC 2H AC AH 7D JH KH 5D 7S 6D +9S 5S 9C 6H 8S TD JD 9H 6C AC +7D 8S 6D TS KD 7H AC 5S 7C 5D +AH QC JC 4C TC 8C 2H TS 2C 7D +KD KC 6S 3D 7D 2S 8S 3H 5S 5C +8S 5D 8H 4C 6H KC 3H 7C 5S KD +JH 8C 3D 3C 6C KC TD 7H 7C 4C +JC KC 6H TS QS TD KS 8H 8C 9S +6C 5S 9C QH 7D AH KS KC 9S 2C +4D 4S 8H TD 9C 3S 7D 9D AS TH +6S 7D 3C 6H 5D KD 2C 5C 9D 9C +2H KC 3D AD 3H QD QS 8D JC 4S +8C 3H 9C 7C AD 5D JC 9D JS AS +5D 9H 5C 7H 6S 6C QC JC QD 9S +JC QS JH 2C 6S 9C QC 3D 4S TC +4H 5S 8D 3D 4D 2S KC 2H JS 2C +TD 3S TH KD 4D 7H JH JS KS AC +7S 8C 9S 2D 8S 7D 5C AD 9D AS +8C 7H 2S 6C TH 3H 4C 3S 8H AC +KD 5H JC 8H JD 2D 4H TD JH 5C +3D AS QH KS 7H JD 8S 5S 6D 5H +9S 6S TC QS JC 5C 5D 9C TH 8C +5H 3S JH 9H 2S 2C 6S 7S AS KS +8C QD JC QS TC QC 4H AC KH 6C +TC 5H 7D JH 4H 2H 8D JC KS 4D +5S 9C KH KD 9H 5C TS 3D 7D 2D +5H AS TC 4D 8C 2C TS 9D 3H 8D +6H 8D 2D 9H JD 6C 4S 5H 5S 6D +AD 9C JC 7D 6H 9S 6D JS 9H 3C +AD JH TC QS 4C 5D 9S 7C 9C AH +KD 6H 2H TH 8S QD KS 9D 9H AS +4H 8H 8D 5H 6C AH 5S AS AD 8S +QS 5D 4S 2H TD KS 5H AC 3H JC +9C 7D QD KD AC 6D 5H QH 6H 5S +KC AH QH 2H 7D QS 3H KS 7S JD +6C 8S 3H 6D KS QD 5D 5C 8H TC +9H 4D 4S 6S 9D KH QC 4H 6C JD +TD 2D QH 4S 6H JH KD 3C QD 8C +4S 6H 7C QD 9D AS AH 6S AD 3C +2C KC TH 6H 8D AH 5C 6D 8S 5D +TD TS 7C AD JC QD 9H 3C KC 7H +5D 4D 5S 8H 4H 7D 3H JD KD 2D +JH TD 6H QS 4S KD 5C 8S 7D 8H +AC 3D AS 8C TD 7H KH 5D 6C JD +9D KS 7C 6D QH TC JD KD AS KC +JH 8S 5S 7S 7D AS 2D 3D AD 2H +2H 5D AS 3C QD KC 6H 9H 9S 2C +9D 5D TH 4C JH 3H 8D TC 8H 9H +6H KD 2C TD 2H 6C 9D 2D JS 8C +KD 7S 3C 7C AS QH TS AD 8C 2S +QS 8H 6C JS 4C 9S QC AD TD TS +2H 7C TS TC 8C 3C 9H 2D 6D JC +TC 2H 8D JH KS 6D 3H TD TH 8H +9D TD 9H QC 5D 6C 8H 8C KC TS +2H 8C 3D AH 4D TH TC 7D 8H KC +TS 5C 2D 8C 6S KH AH 5H 6H KC +5S 5D AH TC 4C JD 8D 6H 8C 6C +KC QD 3D 8H 2D JC 9H 4H AD 2S +TD 6S 7D JS KD 4H QS 2S 3S 8C +4C 9H JH TS 3S 4H QC 5S 9S 9C +2C KD 9H JS 9S 3H JC TS 5D AC +AS 2H 5D AD 5H JC 7S TD JS 4C +2D 4S 8H 3D 7D 2C AD KD 9C TS +7H QD JH 5H JS AC 3D TH 4C 8H +6D KH KC QD 5C AD 7C 2D 4H AC +3D 9D TC 8S QD 2C JC 4H JD AH +6C TD 5S TC 8S AH 2C 5D AS AC +TH 7S 3D AS 6C 4C 7H 7D 4H AH +5C 2H KS 6H 7S 4H 5H 3D 3C 7H +3C 9S AC 7S QH 2H 3D 6S 3S 3H +2D 3H AS 2C 6H TC JS 6S 9C 6C +QH KD QD 6D AC 6H KH 2C TS 8C +8H 7D 3S 9H 5D 3H 4S QC 9S 5H +2D 9D 7H 6H 3C 8S 5H 4D 3S 4S +KD 9S 4S TC 7S QC 3S 8S 2H 7H +TC 3D 8C 3H 6C 2H 6H KS KD 4D +KC 3D 9S 3H JS 4S 8H 2D 6C 8S +6H QS 6C TC QD 9H 7D 7C 5H 4D +TD 9D 8D 6S 6C TC 5D TS JS 8H +4H KC JD 9H TC 2C 6S 5H 8H AS +JS 9C 5C 6S 9D JD 8H KC 4C 6D +4D 8D 8S 6C 7C 6H 7H 8H 5C KC +TC 3D JC 6D KS 9S 6H 7S 9C 2C +6C 3S KD 5H TS 7D 9H 9S 6H KH +3D QD 4C 6H TS AC 3S 5C 2H KD +4C AS JS 9S 7C TS 7H 9H JC KS +4H 8C JD 3H 6H AD 9S 4S 5S KS +4C 2C 7D 3D AS 9C 2S QS KC 6C +8S 5H 3D 2S AC 9D 6S 3S 4D TD +QD TH 7S TS 3D AC 7H 6C 5D QC +TC QD AD 9C QS 5C 8D KD 3D 3C +9D 8H AS 3S 7C 8S JD 2D 8D KC +4C TH AC QH JS 8D 7D 7S 9C KH +9D 8D 4C JH 2C 2S QD KD TS 4H +4D 6D 5D 2D JH 3S 8S 3H TC KH +AD 4D 2C QS 8C KD JH JD AH 5C +5C 6C 5H 2H JH 4H KS 7C TC 3H +3C 4C QC 5D JH 9C QD KH 8D TC +3H 9C JS 7H QH AS 7C 9H 5H JC +2D 5S QD 4S 3C KC 6S 6C 5C 4C +5D KH 2D TS 8S 9C AS 9S 7C 4C +7C AH 8C 8D 5S KD QH QS JH 2C +8C 9D AH 2H AC QC 5S 8H 7H 2C +QD 9H 5S QS QC 9C 5H JC TH 4H +6C 6S 3H 5H 3S 6H KS 8D AC 7S +AC QH 7H 8C 4S KC 6C 3D 3S TC +9D 3D JS TH AC 5H 3H 8S 3S TC +QD KH JS KS 9S QC 8D AH 3C AC +5H 6C KH 3S 9S JH 2D QD AS 8C +6C 4D 7S 7H 5S JC 6S 9H 4H JH +AH 5S 6H 9S AD 3S TH 2H 9D 8C +4C 8D 9H 7C QC AD 4S 9C KC 5S +9D 6H 4D TC 4C JH 2S 5D 3S AS +2H 6C 7C KH 5C AD QS TH JD 8S +3S 4S 7S AH AS KC JS 2S AD TH +JS KC 2S 7D 8C 5C 9C TS 5H 9D +7S 9S 4D TD JH JS KH 6H 5D 2C +JD JS JC TH 2D 3D QD 8C AC 5H +7S KH 5S 9D 5D TD 4S 6H 3C 2D +4S 5D AC 8D 4D 7C AD AS AH 9C +6S TH TS KS 2C QC AH AS 3C 4S +2H 8C 3S JC 5C 7C 3H 3C KH JH +7S 3H JC 5S 6H 4C 2S 4D KC 7H +4D 7C 4H 9S 8S 6S AD TC 6C JC +KH QS 3S TC 4C 8H 8S AC 3C TS +QD QS TH 3C TS 7H 7D AH TD JC +TD JD QC 4D 9S 7S TS AD 7D AC +AH 7H 4S 6D 7C 2H 9D KS JC TD +7C AH JD 4H 6D QS TS 2H 2C 5C +TC KC 8C 9S 4C JS 3C JC 6S AH +AS 7D QC 3D 5S JC JD 9D TD KH +TH 3C 2S 6H AH AC 5H 5C 7S 8H +QC 2D AC QD 2S 3S JD QS 6S 8H +KC 4H 3C 9D JS 6H 3S 8S AS 8C +7H KC 7D JD 2H JC QH 5S 3H QS +9H TD 3S 8H 7S AC 5C 6C AH 7C +8D 9H AH JD TD QS 7D 3S 9C 8S +AH QH 3C JD KC 4S 5S 5D TD KS +9H 7H 6S JH TH 4C 7C AD 5C 2D +7C KD 5S TC 9D 6S 6C 5D 2S TH +KC 9H 8D 5H 7H 4H QC 3D 7C AS +6S 8S QC TD 4S 5C TH QS QD 2S +8S 5H TH QC 9H 6S KC 7D 7C 5C +7H KD AH 4D KH 5C 4S 2D KC QH +6S 2C TD JC AS 4D 6C 8C 4H 5S +JC TC JD 5S 6S 8D AS 9D AD 3S +6D 6H 5D 5S TC 3D 7D QS 9D QD +4S 6C 8S 3S 7S AD KS 2D 7D 7C +KC QH JC AC QD 5D 8D QS 7H 7D +JS AH 8S 5H 3D TD 3H 4S 6C JH +4S QS 7D AS 9H JS KS 6D TC 5C +2D 5C 6H TC 4D QH 3D 9H 8S 6C +6D 7H TC TH 5S JD 5C 9C KS KD +8D TD QH 6S 4S 6C 8S KC 5C TC +5S 3D KS AC 4S 7D QD 4C TH 2S +TS 8H 9S 6S 7S QH 3C AH 7H 8C +4C 8C TS JS QC 3D 7D 5D 7S JH +8S 7S 9D QC AC 7C 6D 2H JH KC +JS KD 3C 6S 4S 7C AH QC KS 5H +KS 6S 4H JD QS TC 8H KC 6H AS +KH 7C TC 6S TD JC 5C 7D AH 3S +3H 4C 4H TC TH 6S 7H 6D 9C QH +7D 5H 4S 8C JS 4D 3D 8S QH KC +3H 6S AD 7H 3S QC 8S 4S 7S JS +3S JD KH TH 6H QS 9C 6C 2D QD +4S QH 4D 5H KC 7D 6D 8D TH 5S +TD AD 6S 7H KD KH 9H 5S KC JC +3H QC AS TS 4S QD KS 9C 7S KC +TS 6S QC 6C TH TC 9D 5C 5D KD +JS 3S 4H KD 4C QD 6D 9S JC 9D +8S JS 6D 4H JH 6H 6S 6C KS KH +AC 7D 5D TC 9S KH 6S QD 6H AS +AS 7H 6D QH 8D TH 2S KH 5C 5H +4C 7C 3D QC TC 4S KH 8C 2D JS +6H 5D 7S 5H 9C 9H JH 8S TH 7H +AS JS 2S QD KH 8H 4S AC 8D 8S +3H 4C TD KD 8C JC 5C QS 2D JD +TS 7D 5D 6C 2C QS 2H 3C AH KS +4S 7C 9C 7D JH 6C 5C 8H 9D QD +2S TD 7S 6D 9C 9S QS KH QH 5C +JC 6S 9C QH JH 8D 7S JS KH 2H +8D 5H TH KC 4D 4S 3S 6S 3D QS +2D JD 4C TD 7C 6D TH 7S JC AH +QS 7S 4C TH 9D TS AD 4D 3H 6H +2D 3H 7D JD 3D AS 2S 9C QC 8S +4H 9H 9C 2C 7S JH KD 5C 5D 6H +TC 9H 8H JC 3C 9S 8D KS AD KC +TS 5H JD QS QH QC 8D 5D KH AH +5D AS 8S 6S 4C AH QC QD TH 7H +3H 4H 7D 6S 4S 9H AS 8H JS 9D +JD 8C 2C 9D 7D 5H 5S 9S JC KD +KD 9C 4S QD AH 7C AD 9D AC TD +6S 4H 4S 9C 8D KS TC 9D JH 7C +5S JC 5H 4S QH AC 2C JS 2S 9S +8C 5H AS QD AD 5C 7D 8S QC TD +JC 4C 8D 5C KH QS 4D 6H 2H 2C +TH 4S 2D KC 3H QD AC 7H AD 9D +KH QD AS 8H TH KC 8D 7S QH 8C +JC 6C 7D 8C KH AD QS 2H 6S 2D +JC KH 2D 7D JS QC 5H 4C 5D AD +TS 3S AD 4S TD 2D TH 6S 9H JH +9H 2D QS 2C 4S 3D KH AS AC 9D +KH 6S 8H 4S KD 7D 9D TS QD QC +JH 5H AH KS AS AD JC QC 5S KH +5D 7D 6D KS KD 3D 7C 4D JD 3S +AC JS 8D 5H 9C 3H 4H 4D TS 2C +6H KS KH 9D 7C 2S 6S 8S 2H 3D +6H AC JS 7S 3S TD 8H 3H 4H TH +9H TC QC KC 5C KS 6H 4H AC 8S +TC 7D QH 4S JC TS 6D 6C AC KH +QH 7D 7C JH QS QD TH 3H 5D KS +3D 5S 8D JS 4C 2C KS 7H 9C 4H +5H 8S 4H TD 2C 3S QD QC 3H KC +QC JS KD 9C AD 5S 9D 7D 7H TS +8C JC KH 7C 7S 6C TS 2C QD TH +5S 9D TH 3C 7S QH 8S 9C 2H 5H +5D 9H 6H 2S JS KH 3H 7C 2H 5S +JD 5D 5S 2C TC 2S 6S 6C 3C 8S +4D KH 8H 4H 2D KS 3H 5C 2S 9H +3S 2D TD 7H 8S 6H JD KC 9C 8D +6S QD JH 7C 9H 5H 8S 8H TH TD +QS 7S TD 7D TS JC KD 7C 3C 2C +3C JD 8S 4H 2D 2S TD AS 4D AC +AH KS 6C 4C 4S 7D 8C 9H 6H AS +5S 3C 9S 2C QS KD 4D 4S AC 5D +2D TS 2C JS KH QH 5D 8C AS KC +KD 3H 6C TH 8S 7S KH 6H 9S AC +6H 7S 6C QS AH 2S 2H 4H 5D 5H +5H JC QD 2C 2S JD AS QC 6S 7D +6C TC AS KD 8H 9D 2C 7D JH 9S +2H 4C 6C AH 8S TD 3H TH 7C TS +KD 4S TS 6C QH 8D 9D 9C AH 7D +6D JS 5C QD QC 9C 5D 8C 2H KD +3C QH JH AD 6S AH KC 8S 6D 6H +3D 7C 4C 7S 5S 3S 6S 5H JC 3C +QH 7C 5H 3C 3S 8C TS 4C KD 9C +QD 3S 7S 5H 7H QH JC 7C 8C KD +3C KD KH 2S 4C TS AC 6S 2C 7C +2C KH 3C 4C 6H 4D 5H 5S 7S QD +4D 7C 8S QD TS 9D KS 6H KD 3C +QS 4D TS 7S 4C 3H QD 8D 9S TC +TS QH AC 6S 3C 9H 9D QS 8S 6H +3S 7S 5D 4S JS 2D 6C QH 6S TH +4C 4H AS JS 5D 3D TS 9C AC 8S +6S 9C 7C 3S 5C QS AD AS 6H 3C +9S 8C 7H 3H 6S 7C AS 9H JD KH +3D 3H 7S 4D 6C 7C AC 2H 9C TH +4H 5S 3H AC TC TH 9C 9H 9S 8D +8D 9H 5H 4D 6C 2H QD 6S 5D 3S +4C 5C JD QS 4D 3H TH AC QH 8C +QC 5S 3C 7H AD 4C KS 4H JD 6D +QS AH 3H KS 9H 2S JS JH 5H 2H +2H 5S TH 6S TS 3S KS 3C 5H JS +2D 9S 7H 3D KC JH 6D 7D JS TD +AC JS 8H 2C 8C JH JC 2D TH 7S +5D 9S 8H 2H 3D TC AH JC KD 9C +9D QD JC 2H 6D KH TS 9S QH TH +2C 8D 4S JD 5H 3H TH TC 9C KC +AS 3D 9H 7D 4D TH KH 2H 7S 3H +4H 7S KS 2S JS TS 8S 2H QD 8D +5S 6H JH KS 8H 2S QC AC 6S 3S +JC AS AD QS 8H 6C KH 4C 4D QD +2S 3D TS TD 9S KS 6S QS 5C 8D +3C 6D 4S QC KC JH QD TH KH AD +9H AH 4D KS 2S 8D JH JC 7C QS +2D 6C TH 3C 8H QD QH 2S 3S KS +6H 5D 9S 4C TS TD JS QD 9D JD +5H 8H KH 8S KS 7C TD AD 4S KD +2C 7C JC 5S AS 6C 7D 8S 5H 9C +6S QD 9S TS KH QS 5S QH 3C KC +7D 3H 3C KD 5C AS JH 7H 6H JD +9D 5C 9H KC 8H KS 4S AD 4D 2S +3S JD QD 8D 2S 7C 5S 6S 5H TS +6D 9S KC TD 3S 6H QD JD 5C 8D +5H 9D TS KD 8D 6H TD QC 4C 7D +6D 4S JD 9D AH 9S AS TD 9H QD +2D 5S 2H 9C 6H 9S TD QC 7D TC +3S 2H KS TS 2C 9C 8S JS 9D 7D +3C KC 6D 5D 6C 6H 8S AS 7S QS +JH 9S 2H 8D 4C 8H 9H AD TH KH +QC AS 2S JS 5C 6H KD 3H 7H 2C +QD 8H 2S 8D 3S 6D AH 2C TC 5C +JD JS TS 8S 3H 5D TD KC JC 6H +6S QS TC 3H 5D AH JC 7C 7D 4H +7C 5D 8H 9C 2H 9H JH KH 5S 2C +9C 7H 6S TH 3S QC QD 4C AC JD +2H 5D 9S 7D KC 3S QS 2D AS KH +2S 4S 2H 7D 5C TD TH QH 9S 4D +6D 3S TS 6H 4H KS 9D 8H 5S 2D +9H KS 4H 3S 5C 5D KH 6H 6S JS +KC AS 8C 4C JC KH QC TH QD AH +6S KH 9S 2C 5H TC 3C 7H JC 4D +JD 4S 6S 5S 8D 7H 7S 4D 4C 2H +7H 9H 5D KH 9C 7C TS TC 7S 5H +4C 8D QC TS 4S 9H 3D AD JS 7C +8C QS 5C 5D 3H JS AH KC 4S 9D +TS JD 8S QS TH JH KH 2D QD JS +JD QC 5D 6S 9H 3S 2C 8H 9S TS +2S 4C AD 7H JC 5C 2D 6D 4H 3D +7S JS 2C 4H 8C AD QD 9C 3S TD +JD TS 4C 6H 9H 7D QD 6D 3C AS +AS 7C 4C 6S 5D 5S 5C JS QC 4S +KD 6S 9S 7C 3C 5S 7D JH QD JS +4S 7S JH 2C 8S 5D 7H 3D QH AD +TD 6H 2H 8D 4H 2D 7C AD KH 5D +TS 3S 5H 2C QD AH 2S 5C KH TD +KC 4D 8C 5D AS 6C 2H 2S 9H 7C +KD JS QC TS QS KH JH 2C 5D AD +3S 5H KC 6C 9H 3H 2H AD 7D 7S +7S JS JH KD 8S 7D 2S 9H 7C 2H +9H 2D 8D QC 6S AD AS 8H 5H 6C +2S 7H 6C 6D 7D 8C 5D 9D JC 3C +7C 9C 7H JD 2H KD 3S KH AD 4S +QH AS 9H 4D JD KS KD TS KH 5H +4C 8H 5S 3S 3D 7D TD AD 7S KC +JS 8S 5S JC 8H TH 9C 4D 5D KC +7C 5S 9C QD 2C QH JS 5H 8D KH +TD 2S KS 3D AD KC 7S TC 3C 5D +4C 2S AD QS 6C 9S QD TH QH 5C +8C AD QS 2D 2S KC JD KS 6C JC +8D 4D JS 2H 5D QD 7S 7D QH TS +6S 7H 3S 8C 8S 9D QS 8H 6C 9S +4S TC 2S 5C QD 4D QS 6D TH 6S +3S 5C 9D 6H 8D 4C 7D TC 7C TD +AH 6S AS 7H 5S KD 3H 5H AC 4C +8D 8S AH KS QS 2C AD 6H 7D 5D +6H 9H 9S 2H QS 8S 9C 5D 2D KD +TS QC 5S JH 7D 7S TH 9S 9H AC +7H 3H 6S KC 4D 6D 5C 4S QD TS +TD 2S 7C QD 3H JH 9D 4H 7S 7H +KS 3D 4H 5H TC 2S AS 2D 6D 7D +8H 3C 7H TD 3H AD KC TH 9C KH +TC 4C 2C 9S 9D 9C 5C 2H JD 3C +3H AC TS 5D AD 8D 6H QC 6S 8C +2S TS 3S JD 7H 8S QH 4C 5S 8D +AC 4S 6C 3C KH 3D 7C 2D 8S 2H +4H 6C 8S TH 2H 4S 8H 9S 3H 7S +7C 4C 9C 2C 5C AS 5D KD 4D QH +9H 4H TS AS 7D 8D 5D 9S 8C 2H +QC KD AC AD 2H 7S AS 3S 2D 9S +2H QC 8H TC 6D QD QS 5D KH 3C +TH JD QS 4C 2S 5S AD 7H 3S AS +7H JS 3D 6C 3S 6D AS 9S AC QS +9C TS AS 8C TC 8S 6H 9D 8D 6C +4D JD 9C KC 7C 6D KS 3S 8C AS +3H 6S TC 8D TS 3S KC 9S 7C AS +8C QC 4H 4S 8S 6C 3S TC AH AC +4D 7D 5C AS 2H 6S TS QC AD TC +QD QC 8S 4S TH 3D AH TS JH 4H +5C 2D 9S 2C 3H 3C 9D QD QH 7D +KC 9H 6C KD 7S 3C 4D AS TC 2D +3D JS 4D 9D KS 7D TH QC 3H 3C +8D 5S 2H 9D 3H 8C 4C 4H 3C TH +JC TH 4S 6S JD 2D 4D 6C 3D 4C +TS 3S 2D 4H AC 2C 6S 2H JH 6H +TD 8S AD TC AH AC JH 9S 6S 7S +6C KC 4S JD 8D 9H 5S 7H QH AH +KD 8D TS JH 5C 5H 3H AD AS JS +2D 4H 3D 6C 8C 7S AD 5D 5C 8S +TD 5D 7S 9C 4S 5H 6C 8C 4C 8S +JS QH 9C AS 5C QS JC 3D QC 7C +JC 9C KH JH QS QC 2C TS 3D AD +5D JH AC 5C 9S TS 4C JD 8C KS +KC AS 2D KH 9H 2C 5S 4D 3D 6H +TH AH 2D 8S JC 3D 8C QH 7S 3S +8H QD 4H JC AS KH KS 3C 9S 6D +9S QH 7D 9C 4S AC 7H KH 4D KD +AH AD TH 6D 9C 9S KD KS QH 4H +QD 6H 9C 7C QS 6D 6S 9D 5S JH +AH 8D 5H QD 2H JC KS 4H KH 5S +5C 2S JS 8D 9C 8C 3D AS KC AH +JD 9S 2H QS 8H 5S 8C TH 5C 4C +QC QS 8C 2S 2C 3S 9C 4C KS KH +2D 5D 8S AH AD TD 2C JS KS 8C +TC 5S 5H 8H QC 9H 6H JD 4H 9S +3C JH 4H 9H AH 4S 2H 4C 8D AC +8S TH 4D 7D 6D QD QS 7S TC 7C +KH 6D 2D JD 5H JS QD JH 4H 4S +9C 7S JH 4S 3S TS QC 8C TC 4H +QH 9D 4D JH QS 3S 2C 7C 6C 2D +4H 9S JD 5C 5H AH 9D TS 2D 4C +KS JH TS 5D 2D AH JS 7H AS 8D +JS AH 8C AD KS 5S 8H 2C 6C TH +2H 5D AD AC KS 3D 8H TS 6H QC +6D 4H TS 9C 5H JS JH 6S JD 4C +JH QH 4H 2C 6D 3C 5D 4C QS KC +6H 4H 6C 7H 6S 2S 8S KH QC 8C +3H 3D 5D KS 4H TD AD 3S 4D TS +5S 7C 8S 7D 2C KS 7S 6C 8C JS +5D 2H 3S 7C 5C QD 5H 6D 9C 9H +JS 2S KD 9S 8D TD TS AC 8C 9D +5H QD 2S AC 8C 9H KS 7C 4S 3C +KH AS 3H 8S 9C JS QS 4S AD 4D +AS 2S TD AD 4D 9H JC 4C 5H QS +5D 7C 4H TC 2D 6C JS 4S KC 3S +4C 2C 5D AC 9H 3D JD 8S QS QH +2C 8S 6H 3C QH 6D TC KD AC AH +QC 6C 3S QS 4S AC 8D 5C AD KH +5S 4C AC KH AS QC 2C 5C 8D 9C +8H JD 3C KH 8D 5C 9C QD QH 9D +7H TS 2C 8C 4S TD JC 9C 5H QH +JS 4S 2C 7C TH 6C AS KS 7S JD +JH 7C 9H 7H TC 5H 3D 6D 5D 4D +2C QD JH 2H 9D 5S 3D TD AD KS +JD QH 3S 4D TH 7D 6S QS KS 4H +TC KS 5S 8D 8H AD 2S 2D 4C JH +5S JH TC 3S 2D QS 9D 4C KD 9S +AC KH 3H AS 9D KC 9H QD 6C 6S +9H 7S 3D 5C 7D KC TD 8H 4H 6S +3C 7H 8H TC QD 4D 7S 6S QH 6C +6D AD 4C QD 6C 5D 7D 9D KS TS +JH 2H JD 9S 7S TS KH 8D 5D 8H +2D 9S 4C 7D 9D 5H QD 6D AC 6S +7S 6D JC QD JH 4C 6S QS 2H 7D +8C TD JH KD 2H 5C QS 2C JS 7S +TC 5H 4H JH QD 3S 5S 5D 8S KH +KS KH 7C 2C 5D JH 6S 9C 6D JC +5H AH JD 9C JS KC 2H 6H 4D 5S +AS 3C TH QC 6H 9C 8S 8C TD 7C +KC 2C QD 9C KH 4D 7S 3C TS 9H +9C QC 2S TS 8C TD 9S QD 3S 3C +4D 9D TH JH AH 6S 2S JD QH JS +QD 9H 6C KD 7D 7H 5D 6S 8H AH +8H 3C 4S 2H 5H QS QH 7S 4H AC +QS 3C 7S 9S 4H 3S AH KS 9D 7C +AD 5S 6S 2H 2D 5H TC 4S 3C 8C +QH TS 6S 4D JS KS JH AS 8S 6D +2C 8S 2S TD 5H AS TC TS 6C KC +KC TS 8H 2H 3H 7C 4C 5S TH TD +KD AD KH 7H 7S 5D 5H 5S 2D 9C +AD 9S 3D 7S 8C QC 7C 9C KD KS +3C QC 9S 8C 4D 5C AS QD 6C 2C +2H KC 8S JD 7S AC 8D 5C 2S 4D +9D QH 3D 2S TC 3S KS 3C 9H TD +KD 6S AC 2C 7H 5H 3S 6C 6H 8C +QH TC 8S 6S KH TH 4H 5D TS 4D +8C JS 4H 6H 2C 2H 7D AC QD 3D +QS KC 6S 2D 5S 4H TD 3H JH 4C +7S 5H 7H 8H KH 6H QS TH KD 7D +5H AD KD 7C KH 5S TD 6D 3C 6C +8C 9C 5H JD 7C KC KH 7H 2H 3S +7S 4H AD 4D 8S QS TH 3D 7H 5S +8D TC KS KD 9S 6D AD JD 5C 2S +7H 8H 6C QD 2H 6H 9D TC 9S 7C +8D 6D 4C 7C 6C 3C TH KH JS JH +5S 3S 8S JS 9H AS AD 8H 7S KD +JH 7C 2C KC 5H AS AD 9C 9S JS +AD AC 2C 6S QD 7C 3H TH KS KD +9D JD 4H 8H 4C KH 7S TS 8C KC +3S 5S 2H 7S 6H 7D KS 5C 6D AD +5S 8C 9H QS 7H 7S 2H 6C 7D TD +QS 5S TD AC 9D KC 3D TC 2D 4D +TD 2H 7D JD QD 4C 7H 5D KC 3D +4C 3H 8S KD QH 5S QC 9H TC 5H +9C QD TH 5H TS 5C 9H AH QH 2C +4D 6S 3C AC 6C 3D 2C 2H TD TH +AC 9C 5D QC 4D AD 8D 6D 8C KC +AD 3C 4H AC 8D 8H 7S 9S TD JC +4H 9H QH JS 2D TH TD TC KD KS +5S 6S 9S 8D TH AS KH 5H 5C 8S +JD 2S 9S 6S 5S 8S 5D 7S 7H 9D +5D 8C 4C 9D AD TS 2C 7D KD TC +8S QS 4D KC 5C 8D 4S KH JD KD +AS 5C AD QH 7D 2H 9S 7H 7C TC +2S 8S JD KH 7S 6C 6D AD 5D QC +9H 6H 3S 8C 8H AH TC 4H JS TD +2C TS 4D 7H 2D QC 9C 5D TH 7C +6C 8H QC 5D TS JH 5C 5H 9H 4S +2D QC 7H AS JS 8S 2H 4C 4H 8D +JS 6S AC KD 3D 3C 4S 7H TH KC +QH KH 6S QS 5S 4H 3C QD 3S 3H +7H AS KH 8C 4H 9C 5S 3D 6S TS +9C 7C 3H 5S QD 2C 3D AD AC 5H +JH TD 2D 4C TS 3H KH AD 3S 7S +AS 4C 5H 4D 6S KD JC 3C 6H 2D +3H 6S 8C 2D TH 4S AH QH AD 5H +7C 2S 9H 7H KC 5C 6D 5S 3H JC +3C TC 9C 4H QD TD JH 6D 9H 5S +7C 6S 5C 5D 6C 4S 7H 9H 6H AH +AD 2H 7D KC 2C 4C 2S 9S 7H 3S +TH 4C 8S 6S 3S AD KS AS JH TD +5C TD 4S 4D AD 6S 5D TC 9C 7D +8H 3S 4D 4S 5S 6H 5C AC 3H 3D +9H 3C AC 4S QS 8S 9D QH 5H 4D +JC 6C 5H TS AC 9C JD 8C 7C QD +8S 8H 9C JD 2D QC QH 6H 3C 8D +KS JS 2H 6H 5H QH QS 3H 7C 6D +TC 3H 4S 7H QC 2H 3S 8C JS KH +AH 8H 5S 4C 9H JD 3H 7S JC AC +3C 2D 4C 5S 6C 4S QS 3S JD 3D +5H 2D TC AH KS 6D 7H AD 8C 6H +6C 7S 3C JD 7C 8H KS KH AH 6D +AH 7D 3H 8H 8S 7H QS 5H 9D 2D +JD AC 4H 7S 8S 9S KS AS 9D QH +7S 2C 8S 5S JH QS JC AH KD 4C +AH 2S 9H 4H 8D TS TD 6H QH JD +4H JC 3H QS 6D 7S 9C 8S 9D 8D +5H TD 4S 9S 4C 8C 8D 7H 3H 3D +QS KH 3S 2C 2S 3C 7S TD 4S QD +7C TD 4D 5S KH AC AS 7H 4C 6C +2S 5H 6D JD 9H QS 8S 2C 2H TD +2S TS 6H 9H 7S 4H JC 4C 5D 5S +2C 5H 7D 4H 3S QH JC JS 6D 8H +4C QH 7C QD 3S AD TH 8S 5S TS +9H TC 2S TD JC 7D 3S 3D TH QH +7D 4C 8S 5C JH 8H 6S 3S KC 3H +JC 3H KH TC QH TH 6H 2C AC 5H +QS 2H 9D 2C AS 6S 6C 2S 8C 8S +9H 7D QC TH 4H KD QS AC 7S 3C +4D JH 6S 5S 8H KS 9S QC 3S AS +JD 2D 6S 7S TC 9H KC 3H 7D KD +2H KH 7C 4D 4S 3H JS QD 7D KC +4C JC AS 9D 3C JS 6C 8H QD 4D +AH JS 3S 6C 4C 3D JH 6D 9C 9H +9H 2D 8C 7H 5S KS 6H 9C 2S TC +6C 8C AD 7H 6H 3D KH AS 5D TH +KS 8C 3S TS 8S 4D 5S 9S 6C 4H +9H 4S 4H 5C 7D KC 2D 2H 9D JH +5C JS TC 9D 9H 5H 7S KH JC 6S +7C 9H 8H 4D JC KH JD 2H TD TC +8H 6C 2H 2C KH 6H 9D QS QH 5H +AC 7D 2S 3D QD JC 2D 8D JD JH +2H JC 2D 7H 2C 3C 8D KD TD 4H +3S 4H 6D 8D TS 3H TD 3D 6H TH +JH JC 3S AC QH 9H 7H 8S QC 2C +7H TD QS 4S 8S 9C 2S 5D 4D 2H +3D TS 3H 2S QC 8H 6H KC JC KS +5D JD 7D TC 8C 6C 9S 3D 8D AC +8H 6H JH 6C 5D 8D 8S 4H AD 2C +9D 4H 2D 2C 3S TS AS TC 3C 5D +4D TH 5H KS QS 6C 4S 2H 3D AD +5C KC 6H 2C 5S 3C 4D 2D 9H 9S +JD 4C 3H TH QH 9H 5S AH 8S AC +7D 9S 6S 2H TD 9C 4H 8H QS 4C +3C 6H 5D 4H 8C 9C KC 6S QD QS +3S 9H KD TC 2D JS 8C 6S 4H 4S +2S 4C 8S QS 6H KH 3H TH 8C 5D +2C KH 5S 3S 7S 7H 6C 9D QD 8D +8H KS AC 2D KH TS 6C JS KC 7H +9C KS 5C TD QC AH 6C 5H 9S 7C +5D 4D 3H 4H 6S 7C 7S AH QD TD +2H 7D QC 6S TC TS AH 7S 9D 3H +TH 5H QD 9S KS 7S 7C 6H 8C TD +TH 2D 4D QC 5C 7D JD AH 9C 4H +4H 3H AH 8D 6H QC QH 9H 2H 2C +2D AD 4C TS 6H 7S TH 4H QS TD +3C KD 2H 3H QS JD TC QC 5D 8H +KS JC QD TH 9S KD 8D 8C 2D 9C +3C QD KD 6D 4D 8D AH AD QC 8S +8H 3S 9D 2S 3H KS 6H 4C 7C KC +TH 9S 5C 3D 7D 6H AC 7S 4D 2C +5C 3D JD 4D 2D 6D 5H 9H 4C KH +AS 7H TD 6C 2H 3D QD KS 4C 4S +JC 3C AC 7C JD JS 8H 9S QC 5D +JD 6S 5S 2H AS 8C 7D 5H JH 3D +8D TC 5S 9S 8S 3H JC 5H 7S AS +5C TD 3D 7D 4H 8D 7H 4D 5D JS +QS 9C KS TD 2S 8S 5C 2H 4H AS +TH 7S 4H 7D 3H JD KD 5D 2S KC +JD 7H 4S 8H 4C JS 6H QH 5S 4H +2C QS 8C 5S 3H QC 2S 6C QD AD +8C 3D JD TC 4H 2H AD 5S AC 2S +5D 2C JS 2D AD 9D 3D 4C 4S JH +8D 5H 5D 6H 7S 4D KS 9D TD JD +3D 6D 9C 2S AS 7D 5S 5C 8H JD +7C 8S 3S 6S 5H JD TC AD 7H 7S +2S 9D TS 4D AC 8D 6C QD JD 3H +9S KH 2C 3C AC 3D 5H 6H 8D 5D +KS 3D 2D 6S AS 4C 2S 7C 7H KH +AC 2H 3S JC 5C QH 4D 2D 5H 7S +TS AS JD 8C 6H JC 8S 5S 2C 5D +7S QH 7H 6C QC 8H 2D 7C JD 2S +2C QD 2S 2H JC 9C 5D 2D JD JH +7C 5C 9C 8S 7D 6D 8D 6C 9S JH +2C AD 6S 5H 3S KS 7S 9D KH 4C +7H 6C 2C 5C TH 9D 8D 3S QC AH +5S KC 6H TC 5H 8S TH 6D 3C AH +9C KD 4H AD TD 9S 4S 7D 6H 5D +7H 5C 5H 6D AS 4C KD KH 4H 9D +3C 2S 5C 6C JD QS 2H 9D 7D 3H +AC 2S 6S 7S JS QD 5C QS 6H AD +5H TH QC 7H TC 3S 7C 6D KC 3D +4H 3D QC 9S 8H 2C 3S JC KS 5C +4S 6S 2C 6H 8S 3S 3D 9H 3H JS +4S 8C 4D 2D 8H 9H 7D 9D AH TS +9S 2C 9H 4C 8D AS 7D 3D 6D 5S +6S 4C 7H 8C 3H 5H JC AH 9D 9C +2S 7C 5S JD 8C 3S 3D 4D 7D 6S +3C KC 4S 5D 7D 3D JD 7H 3H 4H +9C 9H 4H 4D TH 6D QD 8S 9S 7S +2H AC 8S 4S AD 8C 2C AH 7D TC +TS 9H 3C AD KS TC 3D 8C 8H JD +QC 8D 2C 3C 7D 7C JD 9H 9C 6C +AH 6S JS JH 5D AS QC 2C JD TD +9H KD 2H 5D 2D 3S 7D TC AH TS +TD 8H AS 5D AH QC AC 6S TC 5H +KS 4S 7H 4D 8D 9C TC 2H 6H 3H +3H KD 4S QD QH 3D 8H 8C TD 7S +8S JD TC AH JS QS 2D KH KS 4D +3C AD JC KD JS KH 4S TH 9H 2C +QC 5S JS 9S KS AS 7C QD 2S JD +KC 5S QS 3S 2D AC 5D 9H 8H KS +6H 9C TC AD 2C 6D 5S JD 6C 7C +QS KH TD QD 2C 3H 8S 2S QC AH +9D 9H JH TC QH 3C 2S JS 5C 7H +6C 3S 3D 2S 4S QD 2D TH 5D 2C +2D 6H 6D 2S JC QH AS 7H 4H KH +5H 6S KS AD TC TS 7C AC 4S 4H +AD 3C 4H QS 8C 9D KS 2H 2D 4D +4S 9D 6C 6D 9C AC 8D 3H 7H KD +JC AH 6C TS JD 6D AD 3S 5D QD +JC JH JD 3S 7S 8S JS QC 3H 4S +JD TH 5C 2C AD JS 7H 9S 2H 7S +8D 3S JH 4D QC AS JD 2C KC 6H +2C AC 5H KD 5S 7H QD JH AH 2D +JC QH 8D 8S TC 5H 5C AH 8C 6C +3H JS 8S QD JH 3C 4H 6D 5C 3S +6D 4S 4C AH 5H 5S 3H JD 7C 8D +8H AH 2H 3H JS 3C 7D QC 4H KD +6S 2H KD 5H 8H 2D 3C 8S 7S QD +2S 7S KC QC AH TC QS 6D 4C 8D +5S 9H 2C 3S QD 7S 6C 2H 7C 9D +3C 6C 5C 5S JD JC KS 3S 5D TS +7C KS 6S 5S 2S 2D TC 2H 5H QS +AS 7H 6S TS 5H 9S 9D 3C KD 2H +4S JS QS 3S 4H 7C 2S AC 6S 9D +8C JH 2H 5H 7C 5D QH QS KH QC +3S TD 3H 7C KC 8D 5H 8S KH 8C +4H KH JD TS 3C 7H AS QC JS 5S +AH 9D 2C 8D 4D 2D 6H 6C KC 6S +2S 6H 9D 3S 7H 4D KH 8H KD 3D +9C TC AC JH KH 4D JD 5H TD 3S +7S 4H 9D AS 4C 7D QS 9S 2S KH +3S 8D 8S KS 8C JC 5C KH 2H 5D +8S QH 2C 4D KC JS QC 9D AC 6H +8S 8C 7C JS JD 6S 4C 9C AC 4S +QH 5D 2C 7D JC 8S 2D JS JH 4C +JS 4C 7S TS JH KC KH 5H QD 4S +QD 8C 8D 2D 6S TD 9D AC QH 5S +QH QC JS 3D 3C 5C 4H KH 8S 7H +7C 2C 5S JC 8S 3H QC 5D 2H KC +5S 8D KD 6H 4H QD QH 6D AH 3D +7S KS 6C 2S 4D AC QS 5H TS JD +7C 2D TC 5D QS AC JS QC 6C KC +2C KS 4D 3H TS 8S AD 4H 7S 9S +QD 9H QH 5H 4H 4D KH 3S JC AD +4D AC KC 8D 6D 4C 2D KH 2C JD +2C 9H 2D AH 3H 6D 9C 7D TC KS +8C 3H KD 7C 5C 2S 4S 5H AS AH +TH JD 4H KD 3H TC 5C 3S AC KH +6D 7H AH 7S QC 6H 2D TD JD AS +JH 5D 7H TC 9S 7D JC AS 5S KH +2H 8C AD TH 6H QD KD 9H 6S 6C +QH KC 9D 4D 3S JS JH 4H 2C 9H +TC 7H KH 4H JC 7D 9S 3H QS 7S +AD 7D JH 6C 7H 4H 3S 3H 4D QH +JD 2H 5C AS 6C QC 4D 3C TC JH +AC JD 3H 6H 4C JC AD 7D 7H 9H +4H TC TS 2C 8C 6S KS 2H JD 9S +4C 3H QS QC 9S 9H 6D KC 9D 9C +5C AD 8C 2C QH TH QD JC 8D 8H +QC 2C 2S QD 9C 4D 3S 8D JH QS +9D 3S 2C 7S 7C JC TD 3C TC 9H +3C TS 8H 5C 4C 2C 6S 8D 7C 4H +KS 7H 2H TC 4H 2C 3S AS AH QS +8C 2D 2H 2C 4S 4C 6S 7D 5S 3S +TH QC 5D TD 3C QS KD KC KS AS +4D AH KD 9H KS 5C 4C 6H JC 7S +KC 4H 5C QS TC 2H JC 9S AH QH +4S 9H 3H 5H 3C QD 2H QC JH 8H +5D AS 7H 2C 3D JH 6H 4C 6S 7D +9C JD 9H AH JS 8S QH 3H KS 8H +3S AC QC TS 4D AD 3D AH 8S 9H +7H 3H QS 9C 9S 5H JH JS AH AC +8D 3C JD 2H AC 9C 7H 5S 4D 8H +7C JH 9H 6C JS 9S 7H 8C 9D 4H +2D AS 9S 6H 4D JS JH 9H AD QD +6H 7S JH KH AH 7H TD 5S 6S 2C +8H JH 6S 5H 5S 9D TC 4C QC 9S +7D 2C KD 3H 5H AS QD 7H JS 4D +TS QH 6C 8H TH 5H 3C 3H 9C 9D +AD KH JS 5D 3H AS AC 9S 5C KC +2C KH 8C JC QS 6D AH 2D KC TC +9D 3H 2S 7C 4D 6D KH KS 8D 7D +9H 2S TC JH AC QC 3H 5S 3S 8H +3S AS KD 8H 4C 3H 7C JH QH TS +7S 6D 7H 9D JH 4C 3D 3S 6C AS +4S 2H 2C 4C 8S 5H KC 8C QC QD +3H 3S 6C QS QC 2D 6S 5D 2C 9D +2H 8D JH 2S 3H 2D 6C 5C 7S AD +9H JS 5D QH 8S TS 2H 7S 6S AD +6D QC 9S 7H 5H 5C 7D KC JD 4H +QC 5S 9H 9C 4D 6S KS 2S 4C 7C +9H 7C 4H 8D 3S 6H 5C 8H JS 7S +2D 6H JS TD 4H 4D JC TH 5H KC +AC 7C 8D TH 3H 9S 2D 4C KC 4D +KD QS 9C 7S 3D KS AD TS 4C 4H +QH 9C 8H 2S 7D KS 7H 5D KD 4C +9C 2S 2H JC 6S 6C TC QC JH 5C +7S AC 8H KC 8S 6H QS JC 3D 6S +JS 2D JH 8C 4S 6H 8H 6D 5D AD +6H 7D 2S 4H 9H 7C AS AC 8H 5S +3C JS 4S 6D 5H 2S QH 6S 9C 2C +3D 5S 6S 9S 4C QS 8D QD 8S TC +9C 3D AH 9H 5S 2C 7D AD JC 3S +7H TC AS 3C 6S 6D 7S KH KC 9H +3S TC 8H 6S 5H JH 8C 7D AC 2S +QD 9D 9C 3S JC 8C KS 8H 5D 4D +JS AH JD 6D 9D 8C 9H 9S 8H 3H +2D 6S 4C 4D 8S AD 4S TC AH 9H +TS AC QC TH KC 6D 4H 7S 8C 2H +3C QD JS 9D 5S JC AH 2H TS 9H +3H 4D QH 5D 9C 5H 7D 4S JC 3S +8S TH 3H 7C 2H JD JS TS AC 8D +9C 2H TD KC JD 2S 8C 5S AD 2C +3D KD 7C 5H 4D QH QD TC 6H 7D +7H 2C KC 5S KD 6H AH QC 7S QH +6H 5C AC 5H 2C 9C 2D 7C TD 2S +4D 9D AH 3D 7C JD 4H 8C 4C KS +TH 3C JS QH 8H 4C AS 3D QS QC +4D 7S 5H JH 6D 7D 6H JS KH 3C +QD 8S 7D 2H 2C 7C JC 2S 5H 8C +QH 8S 9D TC 2H AD 7C 8D QD 6S +3S 7C AD 9H 2H 9S JD TS 4C 2D +3S AS 4H QC 2C 8H 8S 7S TD TC +JH TH TD 3S 4D 4H 5S 5D QS 2C +8C QD QH TC 6D 4S 9S 9D 4H QC +8C JS 9D 6H JD 3H AD 6S TD QC +KC 8S 3D 7C TD 7D 8D 9H 4S 3S +6C 4S 3D 9D KD TC KC KS AC 5S +7C 6S QH 3D JS KD 6H 6D 2D 8C +JD 2S 5S 4H 8S AC 2D 6S TS 5C +5H 8C 5S 3C 4S 3D 7C 8D AS 3H +AS TS 7C 3H AD 7D JC QS 6C 6H +3S 9S 4C AC QH 5H 5D 9H TS 4H +6C 5C 7H 7S TD AD JD 5S 2H 2S +7D 6C KC 3S JD 8D 8S TS QS KH +8S QS 8D 6C TH AC AH 2C 8H 9S +7H TD KH QH 8S 3D 4D AH JD AS +TS 3D 2H JC 2S JH KH 6C QC JS +KC TH 2D 6H 7S 2S TC 8C 9D QS +3C 9D 6S KH 8H 6D 5D TH 2C 2H +6H TC 7D AD 4D 8S TS 9H TD 7S +JS 6D JD JC 2H AC 6C 3D KH 8D +KH JD 9S 5D 4H 4C 3H 7S QS 5C +4H JD 5D 3S 3C 4D KH QH QS 7S +JD TS 8S QD AH 4C 6H 3S 5S 2C +QS 3D JD AS 8D TH 7C 6S QC KS +7S 2H 8C QC 7H AC 6D 2D TH KH +5S 6C 7H KH 7D AH 8C 5C 7S 3D +3C KD AD 7D 6C 4D KS 2D 8C 4S +7C 8D 5S 2D 2S AH AD 2C 9D TD +3C AD 4S KS JH 7C 5C 8C 9C TH +AS TD 4D 7C JD 8C QH 3C 5H 9S +3H 9C 8S 9S 6S QD KS AH 5H JH +QC 9C 5S 4H 2H TD 7D AS 8C 9D +8C 2C 9D KD TC 7S 3D KH QC 3C +4D AS 4C QS 5S 9D 6S JD QH KS +6D AH 6C 4C 5H TS 9H 7D 3D 5S +QS JD 7C 8D 9C AC 3S 6S 6C KH +8H JH 5D 9S 6D AS 6S 3S QC 7H +QD AD 5C JH 2H AH 4H AS KC 2C +JH 9C 2C 6H 2D JS 5D 9H KC 6D +7D 9D KD TH 3H AS 6S QC 6H AD +JD 4H 7D KC 3H JS 3C TH 3D QS +4C 3H 8C QD 5H 6H AS 8H AD JD +TH 8S KD 5D QC 7D JS 5S 5H TS +7D KC 9D QS 3H 3C 6D TS 7S AH +7C 4H 7H AH QC AC 4D 5D 6D TH +3C 4H 2S KD 8H 5H JH TC 6C JD +4S 8C 3D 4H JS TD 7S JH QS KD +7C QC KD 4D 7H 6S AD TD TC KH +5H 9H KC 3H 4D 3D AD 6S QD 6H +TH 7C 6H TS QH 5S 2C KC TD 6S +7C 4D 5S JD JH 7D AC KD KH 4H +7D 6C 8D 8H 5C JH 8S QD TH JD +8D 7D 6C 7C 9D KD AS 5C QH JH +9S 2C 8C 3C 4C KS JH 2D 8D 4H +7S 6C JH KH 8H 3H 9D 2D AH 6D +4D TC 9C 8D 7H TD KS TH KD 3C +JD 9H 8D QD AS KD 9D 2C 2S 9C +8D 3H 5C 7H KS 5H QH 2D 8C 9H +2D TH 6D QD 6C KC 3H 3S AD 4C +4H 3H JS 9D 3C TC 5H QH QC JC +3D 5C 6H 3S 3C JC 5S 7S 2S QH +AC 5C 8C 4D 5D 4H 2S QD 3C 3H +2C TD AH 9C KD JS 6S QD 4C QC +QS 8C 3S 4H TC JS 3H 7C JC AD +5H 4D 9C KS JC TD 9S TS 8S 9H +QD TS 7D AS AC 2C TD 6H 8H AH +6S AD 8C 4S 9H 8D 9D KH 8S 3C +QS 4D 2D 7S KH JS JC AD 4C 3C +QS 9S 7H KC TD TH 5H JS AC JH +6D AC 2S QS 7C AS KS 6S KH 5S +6D 8H KH 3C QS 2H 5C 9C 9D 6C +JS 2C 4C 6H 7D JC AC QD TD 3H +4H QC 8H JD 4C KD KS 5C KC 7S +6D 2D 3H 2S QD 5S 7H AS TH 6S +AS 6D 8D 2C 8S TD 8H QD JC AH +9C 9H 2D TD QH 2H 5C TC 3D 8H +KC 8S 3D KH 2S TS TC 6S 4D JH +9H 9D QS AC KC 6H 5D 4D 8D AH +9S 5C QS 4H 7C 7D 2H 8S AD JS +3D AC 9S AS 2C 2D 2H 3H JC KH +7H QH KH JD TC KS 5S 8H 4C 8D +2H 7H 3S 2S 5H QS 3C AS 9H KD +AD 3D JD 6H 5S 9C 6D AC 9S 3S +3D 5D 9C 2D AC 4S 2S AD 6C 6S +QC 4C 2D 3H 6S KC QH QD 2H JH +QC 3C 8S 4D 9S 2H 5C 8H QS QD +6D KD 6S 7H 3S KH 2H 5C JC 6C +3S 9S TC 6S 8H 2D AD 7S 8S TS +3C 6H 9C 3H 5C JC 8H QH TD QD +3C JS QD 5D TD 2C KH 9H TH AS +9S TC JD 3D 5C 5H AD QH 9H KC +TC 7H 4H 8H 3H TD 6S AC 7C 2S +QS 9D 5D 3C JC KS 4D 6C JH 2S +9S 6S 3C 7H TS 4C KD 6D 3D 9C +2D 9H AH AC 7H 2S JH 3S 7C QC +QD 9H 3C 2H AC AS 8S KD 8C KH +2D 7S TD TH 6D JD 8D 4D 2H 5S +8S QH KD JD QS JH 4D KC 5H 3S +3C KH QC 6D 8H 3S AH 7D TD 2D +5S 9H QH 4S 6S 6C 6D TS TH 7S +6C 4C 6D QS JS 9C TS 3H 8D 8S +JS 5C 7S AS 2C AH 2H AD 5S TC +KD 6C 9C 9D TS 2S JC 4H 2C QD +QS 9H TC 3H KC KS 4H 3C AD TH +KH 9C 2H KD 9D TC 7S KC JH 2D +7C 3S KC AS 8C 5D 9C 9S QH 3H +2D 8C TD 4C 2H QC 5D TC 2C 7D +KS 4D 6C QH TD KH 5D 7C AD 8D +2S 9S 8S 4C 8C 3D 6H QD 7C 7H +6C 8S QH 5H TS 5C 3C 4S 2S 2H +8S 6S 2H JC 3S 3H 9D 8C 2S 7H +QC 2C 8H 9C AC JD 4C 4H 6S 3S +3H 3S 7D 4C 9S 5H 8H JC 3D TC +QH 2S 2D 9S KD QD 9H AD 6D 9C +8D 2D KS 9S JC 4C JD KC 4S TH +KH TS 6D 4D 5C KD 5H AS 9H AD +QD JS 7C 6D 5D 5C TH 5H QH QS +9D QH KH 5H JH 4C 4D TC TH 6C +KH AS TS 9D KD 9C 7S 4D 8H 5S +KH AS 2S 7D 9D 4C TS TH AH 7C +KS 4D AC 8S 9S 8D TH QH 9D 5C +5D 5C 8C QS TC 4C 3D 3S 2C 8D +9D KS 2D 3C KC 4S 8C KH 6C JC +8H AH 6H 7D 7S QD 3C 4C 6C KC +3H 2C QH 8H AS 7D 4C 8C 4H KC +QD 5S 4H 2C TD AH JH QH 4C 8S +3H QS 5S JS 8H 2S 9H 9C 3S 2C +6H TS 7S JC QD AC TD KC 5S 3H +QH AS QS 7D JC KC 2C 4C 5C 5S +QH 3D AS JS 4H 8D 7H JC 2S 9C +5D 4D 2S 4S 9D 9C 2D QS 8H 7H +6D 7H 3H JS TS AC 2D JH 7C 8S +JH 5H KC 3C TC 5S 9H 4C 8H 9D +8S KC 5H 9H AD KS 9D KH 8D AH +JC 2H 9H KS 6S 3H QC 5H AH 9C +5C KH 5S AD 6C JC 9H QC 9C TD +5S 5D JC QH 2D KS 8H QS 2H TS +JH 5H 5S AH 7H 3C 8S AS TD KH +6H 3D JD 2C 4C KC 7S AH 6C JH +4C KS 9D AD 7S KC 7D 8H 3S 9C +7H 5C 5H 3C 8H QC 3D KH 6D JC +2D 4H 5D 7D QC AD AH 9H QH 8H +KD 8C JS 9D 3S 3C 2H 5D 6D 2S +8S 6S TS 3C 6H 8D 5S 3H TD 6C +KS 3D JH 9C 7C 9S QS 5S 4H 6H +7S 6S TH 4S KC KD 3S JC JH KS +7C 3C 2S 6D QH 2C 7S 5H 8H AH +KC 8D QD 6D KH 5C 7H 9D 3D 9C +6H 2D 8S JS 9S 2S 6D KC 7C TC +KD 9C JH 7H KC 8S 2S 7S 3D 6H +4H 9H 2D 4C 8H 7H 5S 8S 2H 8D +AD 7C 3C 7S 5S 4D 9H 3D JC KH +5D AS 7D 6D 9C JC 4C QH QS KH +KD JD 7D 3D QS QC 8S 6D JS QD +6S 8C 5S QH TH 9H AS AC 2C JD +QC KS QH 7S 3C 4C 5C KC 5D AH +6C 4H 9D AH 2C 3H KD 3D TS 5C +TD 8S QS AS JS 3H KD AC 4H KS +7D 5D TS 9H 4H 4C 9C 2H 8C QC +2C 7D 9H 4D KS 4C QH AD KD JS +QD AD AH KH 9D JS 9H JC KD JD +8S 3C 4S TS 7S 4D 5C 2S 6H 7C +JS 7S 5C KD 6D QH 8S TD 2H 6S +QH 6C TC 6H TD 4C 9D 2H QC 8H +3D TS 4D 2H 6H 6S 2C 7H 8S 6C +9H 9D JD JH 3S AH 2C 6S 3H 8S +2C QS 8C 5S 3H 2S 7D 3C AD 4S +5C QC QH AS TS 4S 6S 4C 5H JS +JH 5C TD 4C 6H JS KD KH QS 4H +TC KH JC 4D 9H 9D 8D KC 3C 8H +2H TC 8S AD 9S 4H TS 7H 2C 5C +4H 2S 6C 5S KS AH 9C 7C 8H KD +TS QH TD QS 3C JH AH 2C 8D 7D +5D KC 3H 5S AC 4S 7H QS 4C 2H +3D 7D QC KH JH 6D 6C TD TH KD +5S 8D TH 6C 9D 7D KH 8C 9S 6D +JD QS 7S QC 2S QH JC 4S KS 8D +7S 5S 9S JD KD 9C JC AD 2D 7C +4S 5H AH JH 9C 5D TD 7C 2D 6S +KC 6C 7H 6S 9C QD 5S 4H KS TD +6S 8D KS 2D TH TD 9H JD TS 3S +KH JS 4H 5D 9D TC TD QC JD TS +QS QD AC AD 4C 6S 2D AS 3H KC +4C 7C 3C TD QS 9C KC AS 8D AD +KC 7H QC 6D 8H 6S 5S AH 7S 8C +3S AD 9H JC 6D JD AS KH 6S JH +AD 3D TS KS 7H JH 2D JS QD AC +9C JD 7C 6D TC 6H 6C JC 3D 3S +QC KC 3S JC KD 2C 8D AH QS TS +AS KD 3D JD 8H 7C 8C 5C QD 6C diff --git a/python/1.py b/python/1.py new file mode 100644 index 0000000..77820fd --- /dev/null +++ b/python/1.py @@ -0,0 +1,25 @@ +# coding=utf-8 +''' If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. +Find the sum of all the multiples of 3 or 5 below 1000. ''' + + +def calc(n, a): + tmp = n / a + return (tmp + 1) * tmp * a / 2 + +x = 3 +y = 5 +maxx = 1000 + +out = calc(maxx, x) + calc(maxx, y) - calc(maxx, x * y) + +print out + + +''' +total = 0 +for i in range(1000): + if i % 3 == 0 or i % 5 == 0: # 条件为能被 3 或 5 整除 + total += i # 足条件的数字加入到 total 中 +print total +''' diff --git a/python/10.py b/python/10.py new file mode 100644 index 0000000..4f05955 --- /dev/null +++ b/python/10.py @@ -0,0 +1,42 @@ +''' The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. +Find the sum of all the primes below two million. ''' + +def makeP(x): + P = [3] + p = [3] + n = 5 + while n < x: + for i in p: + if n % i == 0: + break + else: + P.append(n) + n += 2 + while p[-1] ** 2 < n: + p.append(P[len(p)]) + return P + + +maxx = 2000000 +maxxx = int(maxx ** 0.5) + +prime = makeP(maxxx) + +total = 2 + 3 + 5 + 7 + +for i in xrange(len(prime) - 1): + for x in xrange(prime[i] ** 2 + 2, prime[i + 1] ** 2, 2): + for p in prime[:i + 1]: + if x % p == 0: + break + else: + total += x + +for x in xrange(prime[-1] ** 2 + 2, maxx, 2): + for p in prime: + if x % p == 0: + break + else: + total += x + +print total diff --git a/python/100.py b/python/100.py new file mode 100644 index 0000000..ba33ccd --- /dev/null +++ b/python/100.py @@ -0,0 +1,6 @@ +a, b = 1, 1 +n = (a + 1) // 2 +while n < 10 ** 12: + a, b = 3 * a + 4 * b, 2 * a + 3 * b + n = (a + 1) // 2 +print (b + 1) // 2 diff --git a/python/101.py b/python/101.py new file mode 100644 index 0000000..1756ad9 --- /dev/null +++ b/python/101.py @@ -0,0 +1,30 @@ +def poly(x, coef): + out = 0 + for i in coef: + out = out * x + i + return out + + +un = (1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1) + +a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +for i in xrange(len(a)): + a[i] = poly(a[i], un) + +total = 0 +for length in xrange(2, len(a) + 1): + y = a[:length] + n = len(y) + L = 0 + for k in xrange(n): + l = 1 + for xi in xrange(n): + if xi != k: + l *= (n - xi) + for xi in xrange(n): + if xi != k: + l /= (k - xi) + L += (l * y[k]) + total += L + +print total + 1 diff --git a/python/102.py b/python/102.py new file mode 100644 index 0000000..6c3c5bb --- /dev/null +++ b/python/102.py @@ -0,0 +1,26 @@ +def pl(p1, p2): + return p1[0] * p2[1] - p1[1] * p2[0] + +def isit(lis): + if pl(lis[1], lis[0]) * pl(lis[2], lis[0]) > 0: + return False + if pl(lis[0], lis[1]) * pl(lis[2], lis[1]) > 0: + return False + if pl(lis[0], lis[2]) * pl(lis[1], lis[2]) > 0: + return False + return True + +def breaknum(lis): + return [[int(lis[0]), int(lis[1])], [int(lis[2]), int(lis[3])], [int(lis[4]), int(lis[5])]] + + +ff = open('../triangles.txt', 'r') +points = ff.readlines() +ff.close() + + +count = 0 +for i in points: + if isit(breaknum(i.split(','))): + count += 1 +print count diff --git a/python/104.py b/python/104.py new file mode 100644 index 0000000..b61cd65 --- /dev/null +++ b/python/104.py @@ -0,0 +1,48 @@ +unit = 1000000000 +bigunit = 1.0e+100 + +def musq(a, b): + bi = [] + while b != 0: + bi.append(b % 2) + b /= 2 + bi.reverse() + out = 1 + for p in bi: + out = out * out + if out > bigunit: + out /= bigunit + if p == 1: + out *= a + if out > bigunit: + out /= bigunit + return out + + +def fib(x): + sq5 = 5 ** 0.5 + oa = musq((1 + sq5) / 2, n) + return oa / sq5 + +n = 0 +a, b = 0, 1 + +while 1: + a, b = b, a + b + a %= unit + b %= unit + n += 1 + bit = set('#'.join(str(a)).split('#')) + if len(bit) == 9 and (not '0' in bit): + try: + pre = str(fib(n)) + if pre == 'inf': + break + except OverflowError: + print n + break + pre = pre[0] + pre[2:] + bitend = set('#'.join(pre[:9]).split('#')) + if len(bitend) == 9 and (not '0' in bitend): + print n, a, pre[:9] + break \ No newline at end of file diff --git a/python/107.py b/python/107.py new file mode 100644 index 0000000..1b3d110 --- /dev/null +++ b/python/107.py @@ -0,0 +1,45 @@ +ff = open('../network.txt', 'r') +nnn = ff.readlines() +ff.close() + +inf = 10 ** 10 + +def stolis(s): + mid = s.split(',') + out = [] + for i in mid: + if i.isdigit(): + out.append(int(i)) + else: + out.append(inf) + return out + +hole = 0 +net = [] +for i in nnn: + tmp = stolis(i.strip()) + for j in tmp: + if j < inf: + hole += j + net.append(tmp) + +#print net + +have = [0] +nothave = range(1, len(net)) + +total = 0 +while len(nothave) > 0: + choose = [inf, 0] + node = 0 + it = 0 + for node in nothave: + for it in have: + if net[node][it] < choose[0]: + choose = [net[node][it], node] + if choose[0] < inf: + have.append(choose[1]) + nothave.remove(choose[1]) + total += choose[0] + +print hole / 2 - total diff --git a/python/108.py b/python/108.py new file mode 100644 index 0000000..1e743da --- /dev/null +++ b/python/108.py @@ -0,0 +1,49 @@ +def mkp(n): + P = [2] + p = [2] + x = 3 + while len(P) < n: + for i in p: + if x % i == 0: + break + else: + P.append(x) + while x > p[-1]**2: + p.append(P[len(p)]) + x += 2 + return P + +primes = mkp(1000) + +def factor(x): + out = [] + for p in primes: + if p * p > x: + break + if x % p == 0: + count = 0 + while x % p == 0: + x /= p + count += 1 + out.append(count) + if x > 1: + out.append(1) + return out + + +def sum(x): + pre = factor(x) + out = 1 + for i in pre: + out *= i * 2 + 1 + return (out + 1) / 2 + + +def maxx(x): + n = 4 + while sum(n) < x: + n += 1 + return n + + +print maxx(1000) diff --git a/python/109.py b/python/109.py new file mode 100644 index 0000000..53c87e4 --- /dev/null +++ b/python/109.py @@ -0,0 +1,30 @@ +from sys import argv + + +limit = int(argv[1]) + +kind = range(1, 21) +kind.extend(range(2, 41, 2)) +kind.extend(range(3, 61, 3)) +kind.extend([25, 50]) + +doub = range(2, 41, 2) +doub.extend([50]) + +count = 0 + +for i in doub: + if i <= limit: + count += 1 + for j in kind: + if i + j <= limit: + count += 1 + +tmp = 0 +for i in doub: + for j in xrange(len(kind)): + for k in xrange(j, len(kind)): + if i + kind[j] + kind[k] <= limit: + tmp += 1 + +print count + tmp diff --git a/python/11.py b/python/11.py new file mode 100644 index 0000000..9dda197 --- /dev/null +++ b/python/11.py @@ -0,0 +1,45 @@ +a = [[8, 2, 22, 97, 38, 15, 0, 40, 0, 75, 4, 5, 7, 78, 52, 12, 50, 77, 91, 8], +[49, 49, 99, 40, 17, 81, 18, 57, 60, 87, 17, 40, 98, 43, 69, 48, 4, 56, 62, 0], +[81, 49, 31, 73, 55, 79, 14, 29, 93, 71, 40, 67, 53, 88, 30, 3, 49, 13, 36, 65], +[52, 70, 95, 23, 4, 60, 11, 42, 69, 24, 68, 56, 1, 32, 56, 71, 37, 2, 36, 91], +[22, 31, 16, 71, 51, 67, 63, 89, 41, 92, 36, 54, 22, 40, 40, 28, 66, 33, 13, 80], +[24, 47, 32, 60, 99, 3, 45, 2, 44, 75, 33, 53, 78, 36, 84, 20, 35, 17, 12, 50], +[32, 98, 81, 28, 64, 23, 67, 10, 26, 38, 40, 67, 59, 54, 70, 66, 18, 38, 64, 70], +[67, 26, 20, 68, 2, 62, 12, 20, 95, 63, 94, 39, 63, 8, 40, 91, 66, 49, 94, 21], +[24, 55, 58, 5, 66, 73, 99, 26, 97, 17, 78, 78, 96, 83, 14, 88, 34, 89, 63, 72], +[21, 36, 23, 9, 75, 0, 76, 44, 20, 45, 35, 14, 0, 61, 33, 97, 34, 31, 33, 95], +[78, 17, 53, 28, 22, 75, 31, 67, 15, 94, 3, 80, 4, 62, 16, 14, 9, 53, 56, 92], +[16, 39, 5, 42, 96, 35, 31, 47, 55, 58, 88, 24, 0, 17, 54, 24, 36, 29, 85, 57], +[86, 56, 0, 48, 35, 71, 89, 7, 5, 44, 44, 37, 44, 60, 21, 58, 51, 54, 17, 58], +[19, 80, 81, 68, 5, 94, 47, 69, 28, 73, 92, 13, 86, 52, 17, 77, 4, 89, 55, 40], +[04, 52, 8, 83, 97, 35, 99, 16, 7, 97, 57, 32, 16, 26, 26, 79, 33, 27, 98, 66], +[88, 36, 68, 87, 57, 62, 20, 72, 3, 46, 33, 67, 46, 55, 12, 32, 63, 93, 53, 69], +[4, 42, 16, 73, 38, 25, 39, 11, 24, 94, 72, 18, 8, 46, 29, 32, 40, 62, 76, 36], +[20, 69, 36, 41, 72, 30, 23, 88, 34, 62, 99, 69, 82, 67, 59, 85, 74, 4, 36, 16], +[20, 73, 35, 29, 78, 31, 90, 1, 74, 31, 49, 71, 48, 86, 81, 16, 23, 57, 5, 54], +[1, 70, 54, 71, 83, 51, 54, 69, 16, 92, 33, 48, 61, 43, 52, 1, 89, 19, 67, 48]] + + +def summ(x, y, flag): + vector = ((1, 0), (0, 1), (1, 1), (1, -1)) + total = 1 + for i in xrange(4): + total *= a[x][y] + x += vector[flag][0] + y += vector[flag][1] + return total + +maxx = [0,] + +for i in xrange(20 - 4): + for j in xrange(20 - 4): + for k in xrange(3): + tmp = summ(i, j, k) + if tmp > maxx[0]: + maxx = [tmp, i, j, k] + for j in xrange(3, 20): + tmp = summ(i, j, 3) + if tmp > maxx[0]: + maxx = [tmp, i, j, 3] + +print maxx diff --git a/python/110.py b/python/110.py new file mode 100644 index 0000000..86651d0 --- /dev/null +++ b/python/110.py @@ -0,0 +1,49 @@ +def mkp(n): + P = [2] + p = [2] + x = 3 + while len(P) < n: + for i in p: + if x % i == 0: + break + else: + P.append(x) + while x > p[-1]**2: + p.append(P[len(p)]) + x += 2 + return P + +primes = mkp(1000) + +def factor(x): + out = [] + for p in primes: + if p * p > x: + break + if x % p == 0: + count = 0 + while x % p == 0: + x /= p + count += 1 + out.append(count) + if x > 1: + out.append(1) + return out + + +def sum(x): + pre = factor(x) + out = 1 + for i in pre: + out *= i * 2 + 1 + return (out + 1) / 2 + + +def maxx(x): + n = 4 + while sum(n) < x: + n += 1 + return n + + +print maxx(100000) diff --git a/python/111.py b/python/111.py new file mode 100644 index 0000000..bbc0412 --- /dev/null +++ b/python/111.py @@ -0,0 +1,68 @@ +maxx = 10 + + +def mkp(x): + P = [2] + p = [2] + n = 3 + while n < x: + for i in p: + if n % i == 0: + break + else: + P.append(n) + n += 2 + while n > p[-1] ** 2: + p.append(P[len(p)]) + return P + +prime = mkp(100000) + +def isp(x, lis = prime): + for i in lis: + if i ** 2 > x: + break + if x % i == 0: + return False + return True + +maxx = 10 + +total = 0 + +for i in xrange(1, 10): + for j in xrange(1, 10): + num = ['0'] * maxx + num[0] = str(i) + num[-1] = str(j) + tmp = int(''.join(num)) + if isp(tmp) and (tmp > 10 ** (maxx - 1)): + #print tmp + total += tmp + +for same in xrange(1, 10): + for new in xrange(10): + for local in xrange(maxx): + num = [str(same)] * maxx + num[local] = str(new) + tmp = int(''.join(num)) + if isp(tmp) and (tmp > 10 ** (maxx - 1)): + #print tmp + total += tmp + +sp = set([]) +no = set(range(10)) +for special in [2, 8]: + for new1 in no - set([special]): + for new2 in no - set([special]): + for local1 in xrange(maxx): + for local2 in xrange(maxx): + num = [str(special)] * maxx + num[local1] = str(new1) + num[local2] = str(new2) + tmp = int(''.join(num)) + if isp(tmp) and (tmp > 10 ** (maxx - 1)): + sp.add(tmp) + #print tmp + +print total + sum(list(sp)) diff --git a/python/112.py b/python/112.py new file mode 100644 index 0000000..f19af1d --- /dev/null +++ b/python/112.py @@ -0,0 +1,27 @@ +def ala(x): + out = [] + while x != 0: + out.append(x % 10) + x /= 10 + b = sorted(out) + if out == b: + return False + b.reverse() + if out == b: + return False + return True + + +nis = 0 +nnot = 100 +n = 100 + + +while nis != nnot * 99: + n += 1 + if ala(n): + nis += 1 + else: + nnot += 1 + +print n diff --git a/python/113.py b/python/113.py new file mode 100644 index 0000000..700404c --- /dev/null +++ b/python/113.py @@ -0,0 +1,24 @@ +n = 2 +maxx = 100 +path1 = range(1,10) +path_1 = range(1,11) +total = sum(path1) + sum(path_1) - 1 + +while n < maxx: + new1 = [] + new_1 = [] + tmp1 = 0 + tmp_1 = 0 + for i in xrange(9): + tmp1 += path1[i] + new1.append(tmp1) + path1 = new1 + for i in xrange(10): + tmp_1 += path_1[i] + new_1.append(tmp_1) + path_1 = new_1 +# print path1, path_1 + total += sum(path1) + sum(path_1) - 9 - 1 + n += 1 + +print total diff --git a/python/119.py b/python/119.py new file mode 100644 index 0000000..f44c12e --- /dev/null +++ b/python/119.py @@ -0,0 +1,29 @@ +def ala(x): + tmp = 0 + while x != 0: + tmp += x % 10 + x /= 10 + return tmp + +def ist(x, i): + if i == 1: + return False + if x < 10: + return False + while x != 1: + if x % i != 0: + return False + x /= i + return True + +n = 2 +count = [] +while n < 100: + for i in xrange(100): + tmp = n ** i + if ist(tmp, ala(tmp)): + if count.count(tmp) == 0: + count.append(tmp) + count.sort() + n += 1 +print count[29] diff --git a/python/12.py b/python/12.py new file mode 100644 index 0000000..7c436f1 --- /dev/null +++ b/python/12.py @@ -0,0 +1,30 @@ +''' The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be: +1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... +Let us list the factors of the first seven triangle numbers: + 1: 1 + 3: 1,3 + 6: 1,2,3,6 +10: 1,2,5,10 +15: 1,3,5,15 +21: 1,3,7,21 +28: 1,2,4,7,14,28 +We can see that 28 is the first triangle number to have over five divisors. +What is the value of the first triangle number to have over five hundred divisors? ''' + +def play(stop): + num = 3 + while 1: + num += 1 + n = num * (num + 1) / 2 + sqr = int(n ** 0.5) + count = 0 + if sqr * sqr == n: count = 1 + for tmp in xrange(2, sqr): + if n % tmp == 0: + count += 1 + if count >= stop // 2: + print n + return 1 + +if __name__ == '__main__': + play(500) diff --git a/python/13.py b/python/13.py new file mode 100644 index 0000000..0be6d88 --- /dev/null +++ b/python/13.py @@ -0,0 +1,108 @@ +num = [ +37107287533902102798797998220837590246510135740250, +46376937677490009712648124896970078050417018260538, +74324986199524741059474233309513058123726617309629, +91942213363574161572522430563301811072406154908250, +23067588207539346171171980310421047513778063246676, +89261670696623633820136378418383684178734361726757, +28112879812849979408065481931592621691275889832738, +44274228917432520321923589422876796487670272189318, +47451445736001306439091167216856844588711603153276, +70386486105843025439939619828917593665686757934951, +62176457141856560629502157223196586755079324193331, +64906352462741904929101432445813822663347944758178, +92575867718337217661963751590579239728245598838407, +58203565325359399008402633568948830189458628227828, +80181199384826282014278194139940567587151170094390, +35398664372827112653829987240784473053190104293586, +86515506006295864861532075273371959191420517255829, +71693888707715466499115593487603532921714970056938, +54370070576826684624621495650076471787294438377604, +53282654108756828443191190634694037855217779295145, +36123272525000296071075082563815656710885258350721, +45876576172410976447339110607218265236877223636045, +17423706905851860660448207621209813287860733969412, +81142660418086830619328460811191061556940512689692, +51934325451728388641918047049293215058642563049483, +62467221648435076201727918039944693004732956340691, +15732444386908125794514089057706229429197107928209, +55037687525678773091862540744969844508330393682126, +18336384825330154686196124348767681297534375946515, +80386287592878490201521685554828717201219257766954, +78182833757993103614740356856449095527097864797581, +16726320100436897842553539920931837441497806860984, +48403098129077791799088218795327364475675590848030, +87086987551392711854517078544161852424320693150332, +59959406895756536782107074926966537676326235447210, +69793950679652694742597709739166693763042633987085, +41052684708299085211399427365734116182760315001271, +65378607361501080857009149939512557028198746004375, +35829035317434717326932123578154982629742552737307, +94953759765105305946966067683156574377167401875275, +88902802571733229619176668713819931811048770190271, +25267680276078003013678680992525463401061632866526, +36270218540497705585629946580636237993140746255962, +24074486908231174977792365466257246923322810917141, +91430288197103288597806669760892938638285025333403, +34413065578016127815921815005561868836468420090470, +23053081172816430487623791969842487255036638784583, +11487696932154902810424020138335124462181441773470, +63783299490636259666498587618221225225512486764533, +67720186971698544312419572409913959008952310058822, +95548255300263520781532296796249481641953868218774, +76085327132285723110424803456124867697064507995236, +37774242535411291684276865538926205024910326572967, +23701913275725675285653248258265463092207058596522, +29798860272258331913126375147341994889534765745501, +18495701454879288984856827726077713721403798879715, +38298203783031473527721580348144513491373226651381, +34829543829199918180278916522431027392251122869539, +40957953066405232632538044100059654939159879593635, +29746152185502371307642255121183693803580388584903, +41698116222072977186158236678424689157993532961922, +62467957194401269043877107275048102390895523597457, +23189706772547915061505504953922979530901129967519, +86188088225875314529584099251203829009407770775672, +11306739708304724483816533873502340845647058077308, +82959174767140363198008187129011875491310547126581, +97623331044818386269515456334926366572897563400500, +42846280183517070527831839425882145521227251250327, +55121603546981200581762165212827652751691296897789, +32238195734329339946437501907836945765883352399886, +75506164965184775180738168837861091527357929701337, +62177842752192623401942399639168044983993173312731, +32924185707147349566916674687634660915035914677504, +99518671430235219628894890102423325116913619626622, +73267460800591547471830798392868535206946944540724, +76841822524674417161514036427982273348055556214818, +97142617910342598647204516893989422179826088076852, +87783646182799346313767754307809363333018982642090, +10848802521674670883215120185883543223812876952786, +71329612474782464538636993009049310363619763878039, +62184073572399794223406235393808339651327408011116, +66627891981488087797941876876144230030984490851411, +60661826293682836764744779239180335110989069790714, +85786944089552990653640447425576083659976645795096, +66024396409905389607120198219976047599490197230297, +64913982680032973156037120041377903785566085089252, +16730939319872750275468906903707539413042652315011, +94809377245048795150954100921645863754710598436791, +78639167021187492431995700641917969777599028300699, +15368713711936614952811305876380278410754449733078, +40789923115535562561142322423255033685442488917353, +44889911501440648020369068063960672322193204149535, +41503128880339536053299340368006977710650566631954, +81234880673210146739058568557934581403627822703280, +82616570773948327592232845941706525094512325230608, +22918802058777319719839450180888072429661980811197, +77158542502016545090413245809786882778948721859617, +72107838435069186155435662884062257473692284509516, +20849603980134001723930671666823555245252804609722, +53503534226472524250874054075591789781264330331690,] + +total = 0 +for i in num: + total += i +#print total + +print str(total)[:10] diff --git a/python/130.py b/python/130.py new file mode 100644 index 0000000..90168da --- /dev/null +++ b/python/130.py @@ -0,0 +1,32 @@ +def A(x): + if x % 2 == 0 or x % 5 == 0: + return -1 + n = 0 + num = 0 + while 1: + n = (n * 10 + 1) % x + num += 1 + if n == 0: + return num + + +P = [2] +p = [2] +n = 3 +out = [] +while len(out) < 25: + for i in p: + if n % i == 0: + tmp = A(n) + if tmp > 0: + if (n - 1) % A(n) == 0: + out.append(n) + break + else: + P.append(n) + n += 2 + while n > p[-1] ** 2: + p.append(P[len(p)]) + +print sum(out) + diff --git a/python/132.py b/python/132.py new file mode 100644 index 0000000..3c30ab6 --- /dev/null +++ b/python/132.py @@ -0,0 +1,32 @@ +def A(x): + if x % 2 == 0 or x % 5 == 0: + return -1 + n = 0 + num = 0 + while 1: + n = (n * 10 + 1) % x + num += 1 + if n == 0: + return num + +maxx = 10 ** 9 + +P = [2] +p = [2] +n = 3 +out = [] +while len(out) < 40: + for i in p: + if n % i == 0: + break + else: + P.append(n) + tmp = A(n) + if tmp > 0: + if maxx % tmp == 0: + out.append(n) + n += 2 + while n > p[-1] ** 2: + p.append(P[len(p)]) + +print sum(out), out diff --git a/python/134.py b/python/134.py new file mode 100644 index 0000000..466af0c --- /dev/null +++ b/python/134.py @@ -0,0 +1,41 @@ +def mkp(x): + P = [2] + p = [2] + n = 3 + while n < x: + for i in p: + if n % i == 0: + break + else: + P.append(n) + n += 2 + while n > p[-1] ** 2: + p.append(P[len(p)]) + return P + +def re(x, p): + za = [0, 1, 1] + zb = [1, 1, 0] + a = p + b = x + n = 3 + while b != 0: + n += 1 + q = a / b + za[n % 3] = za[(n - 2) % 3] - q * za[(n - 1) % 3] + zb[n % 3] = zb[(n - 2) % 3] - q * zb[(n - 1) % 3] + a, b = b, a % b + return (zb[(n - 1) % 3] + p) % p + + +def S(p1, p2): + tmp = 10 ** (len(str(p1))) + return (p2 - p1) * re(tmp, p2) % p2 + +p = mkp(1000004) +print p[-1] + +total = 0 +for i in xrange(3, len(p)): + total += int(str(S(p[i - 1], p[i])) + str(p[i - 1])) +print total diff --git a/python/138.py b/python/138.py new file mode 100644 index 0000000..c658905 --- /dev/null +++ b/python/138.py @@ -0,0 +1,25 @@ +k = 2 + 5 ** 0.5 + +out = [] +maxx = 12 +m = 4 +n = 1 + +def test(x, y): + b2 = 4 * x * y + h = x ** 2 - y ** 2 + if abs(h - b2) == 1: + #print b2, h, x, y + out.append(x ** 2 + y ** 2) + return True + return False + +while len(out) < maxx: + m = int(k * n) - 1 + for i in [0,1,2]: + if test(m + i, n): + #print out[-1] + n = m + n += 1 + +print sum(out) diff --git a/python/14.py b/python/14.py new file mode 100644 index 0000000..612f86e --- /dev/null +++ b/python/14.py @@ -0,0 +1,49 @@ +def sq(x): + out = 0 + while x != 1: + out += 1 + if x % 2 == 1: + x = x * 3 + 1 + else: + x /= 2 + return out + +maxx = [0, 0] +limit = 1000000 + +for i in xrange(1, limit + 1): + if i % 100000 == 0: + print i + tmp = sq(i) + if tmp > maxx[1]: + maxx[1] = tmp + maxx[0] = i + +print maxx + +''' +limit = 1000000 +num = {1:1} +maxx = [0, 0] +tmp = [] +for i in xrange(2, limit + 1): + x = i + while 1: + if num.has_key(x): + tmp.reverse() + bak = x + while len(tmp) > 0: + num.update({tmp[0]: num.get(bak) + 1}) + bak = tmp[0] + tmp.pop(0) + break + else: + tmp.append(x) + if x % 2 == 0: + x /= 2 + else: + x = 3 * x + 1 + if num.get(i) > maxx[1]: + maxx = [i, num.get(i)] +print maxx +''' diff --git a/python/15.py b/python/15.py new file mode 100644 index 0000000..766817d --- /dev/null +++ b/python/15.py @@ -0,0 +1,9 @@ +''' Starting in the top left corner of a 2*2 grid, there are 6 routes (without backtracking) to the bottom right corner. +How many routes are there through a 20*20 grid? ''' + +total = 1 +for i in xrange(40, 20, -1): + total *= i +for i in xrange(1, 21): + total /= i +print total diff --git a/python/16.py b/python/16.py new file mode 100644 index 0000000..920618b --- /dev/null +++ b/python/16.py @@ -0,0 +1,7 @@ +''' What is the sum of the digits of the number 2^1000 ? ''' + +stri = str(2 ** 1000) +total = 0 +for i in xrange(len(stri)): + total += ord(stri[i]) - ord('0') +print total diff --git a/python/162.py b/python/162.py new file mode 100644 index 0000000..c2bfbba --- /dev/null +++ b/python/162.py @@ -0,0 +1,25 @@ +def frag(x): + out = [] + for i in xrange(1, x - 1): + for j in xrange(1, x - i): + out.append((i, j, x - i - j)) + return out + +def C(n, m): + total = 1 + for i in xrange(n, n - m, -1): + total *= i + for i in xrange(m, 1, -1): + total /= i + return total + +total = 0 + +for length in xrange(3, 17): + for same in xrange(3, length + 1): + for (x,y,z) in frag(same): + total += C(length - 1, x) * C(length - x, y) * C(length + - x - y, z) * 13 ** (length - same) +print '%X' % total + + diff --git a/python/17.py b/python/17.py new file mode 100644 index 0000000..e50a70e --- /dev/null +++ b/python/17.py @@ -0,0 +1,66 @@ +dic = { +0:'', +1:'one', +2:'two', +3:'three', +4:'four', +5:'five', +6:'six', +7:'seven', +8:'eight', +9:'nine', +10:'ten', +11:'eleven', +12:'twelve', +13:'thirteen', +14:'fourteen', +15:'fifteen', +16:'sixteen', +17:'seventeen', +18:'eighteen', +19:'nineteen', +20:'twenty', +30:'thirty', +40:'forty', +50:'fifty', +60:'sixty', +70:'seventy', +80:'eighty', +90:'nithty', +100:'hundred', +1000:'thousand' +} + +def analyse(x, p = 0): + if p: print x, + if x == 1000: + if p: print dic.get(x) + return len(dic.get(x)) + out = 0 + tmp = x / 100 + if tmp: + out += len(dic.get(tmp)) + if p: print dic.get(tmp), + out += len(dic.get(100)) + if p: print dic.get(100), + if x % 100 == 0: + if p: print + return out + out += 3 + if p: print 'and', + tmp = x % 100 + if tmp < 20: + out += len(dic.get(tmp)) + if p: print dic.get(tmp) + return out + out += len(dic.get(tmp / 10 * 10)) + if p: print dic.get(tmp / 10 * 10), + out += len(dic.get(tmp % 10)) + if p: print dic.get(tmp % 10) + return out + + +total = 0 +for i in xrange(1, 1001): + total += analyse(i) +print total diff --git a/python/18.py b/python/18.py new file mode 100644 index 0000000..ad25676 --- /dev/null +++ b/python/18.py @@ -0,0 +1,50 @@ +a = [[75], +[95, 64], +[17, 47, 82], +[18, 35, 87, 10], +[20, 4, 82, 47, 65], +[19, 1, 23, 75, 3, 34], +[88, 2, 77, 73, 7, 63, 67], +[99, 65, 4, 28, 6, 16, 70, 92], +[41, 41, 26, 56, 83, 40, 80, 70, 33], +[41, 48, 72, 33, 47, 32, 37, 16, 94, 29], +[53, 71, 44, 65, 25, 43, 91, 52, 97, 51, 14], +[70, 11, 33, 28, 77, 73, 17, 78, 39, 68, 17, 57], +[91, 71, 52, 38, 17, 14, 91, 43, 58, 50, 27, 29, 48], +[63, 66, 4, 68, 89, 53, 67, 30, 73, 16, 69, 87, 40, 31], +[4, 62, 98, 27, 23, 9, 70, 98, 73, 93, 38, 53, 60, 4, 23]] + + +path = a[-1][:] +for i in xrange(len(a) - 2, 0, -1): + newpath = [] + for j in xrange(i + 1): + better = max(path[j], path[j + 1]) + newpath.append(a[i][j] + better) + path = newpath +print max(path) + a[0][0] + + +''' +path = [[a[0][0], [a[0][0]]]] +for i in xrange(1, len(a)): + newpath = [] + tmp = path[0][1][:] + tmp.append(a[i][0]) + newpath.append([path[0][0] + a[i][0], tmp]) + for j in xrange(1, i): + flag = (path[j - 1][0] > path[j][0]) and -1 or 0 + tmp = path[j + flag][1][:] + tmp.append(a[i][j]) + newpath.append([path[j + flag][0] + a[i][j], tmp]) + tmp = path[i - 1][1][:] + tmp.append(a[i][i]) + newpath.append([path[i - 1][0] + a[i][i], tmp]) + path = newpath + +maxx = [0, 0] +for i in path: + if i[0] > maxx[0]: + maxx = i +print maxx +''' \ No newline at end of file diff --git a/python/19.py b/python/19.py new file mode 100644 index 0000000..84a8e34 --- /dev/null +++ b/python/19.py @@ -0,0 +1,33 @@ +month = (0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) + + +def testyear(x): + if x % 400 == 0: + return True + if x % 100 != 0 and x % 4 == 0: + return True + return False + + +pair = [[1900, 1], 1] + +def next(): + pair[1] += month[pair[0][1]] + if testyear(pair[0][0]) and pair[0][1] == 2: + pair[1] += 1 + pair[1] %= 7 + pair[0][1] += 1 + if pair[0][1] > 12: + pair[0][1] = 1 + pair[0][0] += 1 + +total = 0 +for i in xrange(12): + next() + +while pair[0][0] < 2001: + if pair[1] == 0: + total += 1 + next() + +print total diff --git a/python/2.py b/python/2.py new file mode 100644 index 0000000..05b3f91 --- /dev/null +++ b/python/2.py @@ -0,0 +1,24 @@ +# coding=utf-8 + +''' Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: +1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... +By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms. ''' + +fib = [1, 1, 0] # 设置 fib 数列循环的数组 +i = 1 # fib 数列的项计数器 +total = 0 # 满足条件的数的和 +while fib[i] <= 4000000: # fib 数列小于要求值时不断循环 + if fib[i] % 2 == 0: + print fib[i] + total += fib[i] # 满足条件的项计入总和 + i = (i + 1) % 3 # 项计数器 + fib[i] = fib[(i + 1) % 3] + fib[(i + 2) % 3] # +print total # + +a, b = 2, 8 +total = 0 +while a < 4000000: + total += a + a, b = b, a + b * 4 +print total + diff --git a/python/20.py b/python/20.py new file mode 100644 index 0000000..ace675b --- /dev/null +++ b/python/20.py @@ -0,0 +1,13 @@ +''' n! means n * (n - 1) * ... * 3 * 2 * 1 +For example, 10! = 10 * 9 * ... * 3 * 2 * 1 = 3628800, +and the sum of the digits in the number 10! is 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27. +Find the sum of the digits in the number 100! ''' + +a = 1 +sum = 0 +for i in xrange(1, 101): + a *= i +while a > 0: + sum += a % 10 + a /= 10 +print sum diff --git a/python/21.py b/python/21.py new file mode 100644 index 0000000..ea36192 --- /dev/null +++ b/python/21.py @@ -0,0 +1,19 @@ +''' Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n). +If d(a) = b and d(b) = a, where a b, then a and b are an amicable pair and each of a and b are called amicable numbers. +For example, the proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110; therefore d(220) = 284. The proper divisors of 284 are 1, 2, 4, 71 and 142; so d(284) = 220. +Evaluate the sum of all the amicable numbers under 10000. ''' + +import math + +def ami(x): + test = 1 + sqr = int(math.ceil(math.sqrt(x))) + if sqr * sqr == x: test += sqr + for i in xrange(2, sqr + 1): + if x % i == 0: test += i + x / i + return test + +for j in xrange(2, 10000): + tmp = ami(j) + if j == ami(tmp) and j != tmp: + print j, '\t', tmp diff --git a/python/22.py b/python/22.py new file mode 100644 index 0000000..92e59ab --- /dev/null +++ b/python/22.py @@ -0,0 +1,21 @@ +''' Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-thousand first names, begin by sorting it into alphabetical order. Then working out the alphabetical value for each name, multiply this value by its alphabetical position in the list to obtain a name score. +For example, when the list is sorted into alphabetical order, COLIN, which is worth 3 + 15 + 12 + 9 + 14 = 53, is the 938th name in the list. So, COLIN would obtain a score of 938 * 53 = 49714. +What is the total of all the name scores in the file? ''' + +def namescore(nn): + mark = 0 + for i in nn: + mark += ord(i) - ord('A') + 1 + return mark + + +filein = open('names.txt', 'r') +names = filein.read().split(',') +names.sort() +test = names[:] + + +for xx in xrange(len(names)): + test[xx] = (xx + 1) * namescore(names[xx]) + +print sum(test) diff --git a/python/23.py b/python/23.py new file mode 100644 index 0000000..678f078 --- /dev/null +++ b/python/23.py @@ -0,0 +1,49 @@ +# coding=utf-8 +''' A perfect number is a number for which the sum of its proper divisors is exactly equal to the number. For example, the sum of the proper divisors of 28 would be 1 + 2 + 4 + 7 + 14 = 28, which means that 28 is a perfect number. +A number n is called deficient if the sum of its proper divisors is less than n and it is called abundant if this sum exceeds n. +As 12 is the smallest abundant number, 1 + 2 + 3 + 4 + 6 = 16, the smallest number that can be written as the sum of two abundant numbers is 24. By mathematical analysis, it can be shown that all integers greater than 28123 can be written as the sum of two abundant numbers. However, this upper limit cannot be reduced any further by analysis even though it is known that the greatest number that cannot be expressed as the sum of two abundant numbers is less than this limit. +Find the sum of all the positive integers which cannot be written as the sum of two abundant numbers. ''' + +_limit = 20161 + +def factor(n): + ll = [1] + i = 2 + while i <= int(n ** 0.5): + if n % i == 0: + ll.append(i) + if n // i != i: + ll.append(n / i) + i += 1 + return ll + +def test(x): + sum = 0 + for i in factor(x): + sum += i + if sum > x: + return 1 + else: return 0 + +def ablist(max): + all = [] + for i in xrange(10, max + 1): + if test(i): + all.append(i) + return all + +abnum = ablist(_limit) + +if __name__ == '__main__': + num = range(_limit + 1) + for xx in abnum: + for yy in abnum: + tmp = xx + yy + if tmp < _limit: + num[tmp] = 0 + else: + break + sum = 0 + for i in num: + sum += i + print sum diff --git a/python/24.py b/python/24.py new file mode 100644 index 0000000..b9cb4ca --- /dev/null +++ b/python/24.py @@ -0,0 +1,25 @@ +_max = 10 +_end = 1000000 + +_last = 3628800 + +locale = _end - 1 + +num = [1, 1] +count = [1,1,1,1,1,1,1,1,1,1] +ch = '0123456789' +out = '' + +i = 2 +while len(num) < 10: + num.append(num[-1] * i) + i += 1 + +for i in xrange(_max - 1, 0, -1): + count[i] = locale / num[i] + locale %= num[i] + out += ch[count[i]] + ch = ch[:count[i]] + ch[count[i] + 1:] + + +print out + ch diff --git a/python/25.py b/python/25.py new file mode 100644 index 0000000..90057c1 --- /dev/null +++ b/python/25.py @@ -0,0 +1,7 @@ +fib = [1, 1, 0] +num = 2 +while 1: + fib[num % 2] = fib[(num + 1) % 2] + fib[(num + 2) % 2] + if len(str(fib[num % 2])) == 1000: break + num += 1 +print num + 1 diff --git a/python/26.py b/python/26.py new file mode 100644 index 0000000..45be7af --- /dev/null +++ b/python/26.py @@ -0,0 +1,39 @@ +# coding=utf-8 +def divnum(a): + mod = [] + div = 1 + while 1: + tmp = div % a + if tmp == 0: + return len(mod) + elif mod.count(tmp): break + else: + mod.append(tmp) + div *= 10 + return len(mod) - mod.index(tmp) + + +def divnum1(a): + while a % 2 == 0: + a /= 2 + while a % 5 == 0: + a /= 5 + j = 1 + while 1: + tmp = int('9' * j) + if tmp % a == 0: + return str(tmp / a) + j += 1 + + + +maxnum = [0, 0] +maxx = 1000 +for i in xrange(1, maxx + 1): + temp = divnum(i) + #temp = len(divnum1(i)) + if temp > maxnum[1]: + maxnum[0] = i + maxnum[1] = temp + +print maxnum diff --git a/python/27.py b/python/27.py new file mode 100644 index 0000000..d22e5d0 --- /dev/null +++ b/python/27.py @@ -0,0 +1,33 @@ +def isprime(x): + if x <= 0: + return False + if x == 2: + return True + temp = 3 + while temp <= int(x ** 0.5) + 1: + if x % temp == 0: return False + else: temp += 2 + return True + + +delta = lambda x, y: 2 * x + y + 1 + + +a = [0, 0, 0] +for j in xrange(1001): + if isprime(j): + for i in xrange(-1000, 1001): + n = 0 + tmp = j + while 1: + tmp += delta(n, i) + if isprime(tmp): + #print j, '\t', i, '\t', tmp + n += 1 + else: + break + if n > a[0]: + a[0] = n + a[1] = i + a[2] = j +print a[1] * a[2], '=', a[1], '*', a[2] diff --git a/python/28.py b/python/28.py new file mode 100644 index 0000000..e073603 --- /dev/null +++ b/python/28.py @@ -0,0 +1,8 @@ +total = 0 + +for i in xrange(1, 1002): + tmp = i * i + total += tmp + (1 - i % 2) + total += tmp + i + 1 + +print total - 1001 * 1002 - 1 diff --git a/python/29.py b/python/29.py new file mode 100644 index 0000000..707b838 --- /dev/null +++ b/python/29.py @@ -0,0 +1,8 @@ +lis = [] +for i in xrange(2, 101): + for j in xrange(2, 101): + tmp = i ** j + if lis.count(tmp) == 0: + lis.append(tmp) + +print len(lis) diff --git a/python/3.py b/python/3.py new file mode 100644 index 0000000..79fc8ba --- /dev/null +++ b/python/3.py @@ -0,0 +1,20 @@ +# coding=utf-8 +''' The prime factors of 13195 are 5, 7, 13 and 29. +What is the largest prime factor of the number 600851475143 ? ''' + +'''分解因数,如果是素数返回''' +def factor(x, min = 2): + temp = min + while temp <= int(x ** 0.5) + 1: #从最小值到上界开始尝试 + if x % temp == 0: return temp # 如果 a 能分解则返回最小因子 + else: temp += 1 + return 1 # 如果 a 是素数就返回 1,此处也可以设置为返回 x 本身 + +n = 600851475143 +i = 2 # 尝试循环分解 n 的因子 +while i <= int(math.sqrt(n)) + 1: + if n % i == 0 : # 如果满足 i 整除 n + if factor(n / i) == 1: break # 同时 n / i 是素数则返回 + else: n /= i # 如果 n / i 不为素数,就缩小 n 以减小运算量 + i += 1 +print n / i # 输出结果 diff --git a/python/30.py b/python/30.py new file mode 100644 index 0000000..dd4fec6 --- /dev/null +++ b/python/30.py @@ -0,0 +1,15 @@ +def ala(x, n = 5): + ss = 0 + while x != 0: + ss += (x % 10) ** n + x /= 10 + return ss + +total = 0 +for i in xrange(1000000): + if i == ala(i): + print i + total += i + + +print '\n\n', total - 1 diff --git a/python/31.py b/python/31.py new file mode 100644 index 0000000..e1e98f6 --- /dev/null +++ b/python/31.py @@ -0,0 +1,17 @@ +cash = (200, 100, 50, 20, 10, 5, 2, 1) +#cash = (5, 2, 1) +total = [] + +def im(lis, x, n, a = 0): + if a == len(cash) - 1: + x.append(n) + lis.append(x[:]) + x.pop() + return + for i in xrange(int(n / cash[a]) + 1): + x.append(i) + im(lis, x, n - i * cash[a], a + 1) + x.pop() + +im(total, [], 200) +print len(total) diff --git a/python/32.py b/python/32.py new file mode 100644 index 0000000..2db081a --- /dev/null +++ b/python/32.py @@ -0,0 +1,53 @@ +from math import log10 + +def pick(x, lis, out, a = 0): + if x == 0: + out.append([a, lis]) + return + a *= 10 + for i in xrange(len(lis)): + tmp = lis[:] + tmpa = a + lis[i] + tmp.pop(i) + pick(x - 1, tmp, out, tmpa) + + + +def test(x, n): + tmp = x[:] + while n > 0: + if tmp.count(n % 10): + tmp.remove(n % 10) + n /= 10 + else: + return False + if len(tmp) > 0: + return False + return True + +total = [] + +tt = [] +pick(1, [1,2,3,4,5,6,7,8,9], tt) +for i in tt: + yy = [] + pick(4, i[1], yy) + for j in yy: + if test(j[1], i[0] * j[0]): + tmp = i[0] * j[0] + if total.count(tmp) == 0: + total.append(tmp) + +tt = [] +pick(2, [1,2,3,4,5,6,7,8,9], tt) +for i in tt: + yy = [] + pick(3, i[1], yy) + for j in yy: + if test(j[1], i[0] * j[0]): + tmp = i[0] * j[0] + if total.count(tmp) == 0: + total.append(tmp) + + +print sum(total) diff --git a/python/33.py b/python/33.py new file mode 100644 index 0000000..66a7eb3 --- /dev/null +++ b/python/33.py @@ -0,0 +1,39 @@ +gcd = lambda x, y: y == 0 and x or gcd(y, x % y) + + +def common(x, y): + a = [] + b = [] + while x > 0: + a.append(x % 10) + x /= 10 + while y > 0: + b.append(y % 10) + y /= 10 + outa = 0 + outb = 0 + tmp = list(set(a) & set(b)) + if tmp.count(0) != 0: + tmp.remove(0) + if len(tmp) > 0: + for i in tmp: + a.remove(i) + b.remove(i) + if len(a) == 0 or len(b) == 0: + return (False, 0) + a.reverse() + for j in a: outa = outa * 10 + j + b.reverse() + for j in b: outb = outb * 10 + j + return (True, outa, outb) + else: + return (False, 0) + + +for i in xrange(11, 100): + for j in xrange(i + 1, 100): + tmp = common(i, j) + if tmp[0]: + if tmp[1] * j == tmp[2] * i: + print i, j + diff --git a/python/34.py b/python/34.py new file mode 100644 index 0000000..ffbbf49 --- /dev/null +++ b/python/34.py @@ -0,0 +1,25 @@ +def mul(x): + out = 1 + for i in xrange(2, x + 1): + out *= i + return out + +def ala(x): + tt = x + xx = 0 + while tt > 0: + xx += mul(tt % 10) + tt /= 10 + if xx == x: + return True + else: + return False + +total = 0 +i = 3 +while i < 100000: + if ala(i): + print i + total += i + i += 1 +print total diff --git a/python/35.py b/python/35.py new file mode 100644 index 0000000..1dd7f42 --- /dev/null +++ b/python/35.py @@ -0,0 +1,42 @@ +''' The number, 197, is called a circular prime because all rotations of the digits: 197, 971, and 719, are themselves prime. +There are thirteen such primes below 100: 2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, and 97. +How many circular primes are there below one million? ''' + +from math import log10 + +pp = [2] +for i in xrange(3, 1000, 2): + for x in pp: + if i % x == 0: + break + else: + pp.append(i) + +def isp(a): + for i in pp: + if a % i == 0: + if a == i: + return True + return False + return True + +def loop(x): + length = int(log10(x)) + return (x % 10) * 10 ** length + x / 10 + +def lote(n): + tt = n + while 1: + if not isp(tt): + return False + tt = loop(tt) + if tt == n: + return True + +out = [2] +for ii in xrange(3, 1000000, 2): + if lote(ii): + out.append(ii) + +print len(out) + diff --git a/python/36.py b/python/36.py new file mode 100644 index 0000000..936da43 --- /dev/null +++ b/python/36.py @@ -0,0 +1,45 @@ +def rev(x): + out = '' + for i in xrange(len(x)): + out += x[-1 - i] + return out + + + +def make(x): + if x == 1: + return [1,2,3,4,5,6,7,8,9] + lenn = 10 ** (x / 2) + out = [] + for i in xrange(lenn / 10, lenn): + a = str(i) + b = rev(a) + if x % 2: + for i in xrange(10): + out.append(int(a + str(i) + b)) + else: + out.append(int(a + b)) + return out + + + +def test(x): + bi = [] + while x > 0: + bi.append(x % 2) + x /= 2 + bb = bi[:] + bb.reverse() + if bi == bb: + #print bi, + return True + else: + return False + +total = 0 +for i in xrange(1, 7): + for j in make(i): + if test(j): + #print j + total += j +print total diff --git a/python/37.py b/python/37.py new file mode 100644 index 0000000..469e248 --- /dev/null +++ b/python/37.py @@ -0,0 +1,35 @@ +from math import sqrt, log10 + +def isp(x): + if x == 2: + return True + if x <= 1 or x & 1 == 0: + return False + for i in xrange(3, int(sqrt(x)) + 1, 2): + if x % i == 0: + return False + return True + + +def ananum(x): + if isp(x): + for i in xrange(1, int(log10(x)) + 1): + if isp(x / (10 ** i)) and isp(x % (10 ** i)): + continue + else: + return False + return True + return False + + +count = 0 +total = [] +n = 11 +while count < 11: + if ananum(n): + count += 1 + total.append(n) + n += 1 + +print count, sum(total) +print total diff --git a/python/38.py b/python/38.py new file mode 100644 index 0000000..1ba98ee --- /dev/null +++ b/python/38.py @@ -0,0 +1,31 @@ +def pick(x, lis, out, a = 0): + if x == 0: + out.append(a) + return + a *= 10 + for i in xrange(len(lis)): + tmp = lis[:] + tmpa = a + lis[i] + tmp.pop(i) + pick(x - 1, tmp, out, tmpa) + +def test(x): + mm = '932718654' + ss = '' + i = 0 + while len(ss) < 9: + i += 1 + ss += str(i * x) + tt = [] + for j in xrange(len(ss)): + tt.append(ss[j]) + if len(tt) == len(set(tt)) and ss >= mm: + if not tt.count('0'): + print ss + +num = [1,2,3,4,5,6,7,8,9] +tt = [] +pick(4, num, tt) + +for i in tt: + test(i) diff --git a/python/384/384.py b/python/384/384.py new file mode 100644 index 0000000..d7a8f13 --- /dev/null +++ b/python/384/384.py @@ -0,0 +1,98 @@ +from math import log +from sys import argv + + +fib = [1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269,2178309,3524578,5702887,9227465,14930352,24157817,39088169,63245986,102334155,165580141,267914296,433494437,701408733,1134903170,1836311903] + + +def sqrs(x): + out = '' + while x > 0: + out += chr(ord('0') + x % 2) + x /= 2 + if len(out) <= 1: return 1 + outnum = 1 + for i in xrange(1, len(out)): + if out[i] == out[i - 1] == '1': + outnum *= -1 + return outnum + +''' +def trace(x, n): + bale = 0 + print '%12s' % bin(x)[2:], + for i in xrange(1, n + 1): + bale += sqrs(x + i) + if bale == 0: + print '%4d' % i, + break + + +for kk in xrange(10): + trace(2 ** kk + int(argv[1]), 1000) + print +''' +''' +a = 0 +for i in xrange(10000): + a += sqrs(i) + print a, +''' + +def listsr(x): + out = [1] + for i in xrange(x): + out.append(out[i] + sqrs(i + 1)) + return out + + +def sqs(lis): + dic = {} + for i in xrange(len(lis)): + tmp = lis[i] + if dic.keys().count(tmp) == 0: + dic.update({tmp: [i]}) + else: + dic.get(tmp).append(i) + return dic + + + + + +def log2(x): + return int(log(x)/log(2)) + + +def first(x): + if x == 0: + return 0 + minus = 0 + if x & 1 == 0: + tmp = 1 + while x & tmp == 0: + tmp *= 2 + else: + minus = ((4 ** log2(tmp) - 1) / 3 + 1) / 2 + x += 1 + length = log2(x) + value = 4 ** length / 2 + can = 2 ** length + 1 # 1000...0001 + for i in xrange(1, length): + bar = 2 ** i + if (bar & can) != (bar & x): + value += 4 ** i / 2 + return value - minus + + +lis = listsr(50000) +#print lis +a = sqs(lis) +a.pop(1) +for item in a.keys(): + tmp = a.get(item)[0] + for i in xrange(len(a.get(item))): + a.get(item)[i] -= tmp + #print item, '\t', '%8s' % bin(tmp)[2:], '\t', a.get(item) + print '%10s' % bin(item)[2:], '%6d' % first(item), '%7d' % a.get(item)[-1], '%8d' % ((first(item) + a.get(item)[-1]) / 2), a.get(item)[(item + 1) / 2] + diff --git a/python/384/p.tex b/python/384/p.tex new file mode 100644 index 0000000..33aa6ef --- /dev/null +++ b/python/384/p.tex @@ -0,0 +1,50 @@ +\documentclass[12pt,a4paper]{article} +\usepackage[top=2cm, bottom=2cm, left=2.5cm, right=2.5cm]{geometry} +\usepackage{indentfirst}%首行缩进 +\XeTeXlinebreaklocale "zh"%中文换行 +\XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt%放宽断行限制 + +\usepackage[cm-default, no-math, no-config]{fontspec}%字体包 +\setmainfont[BoldFont=WenQuanYi Micro Hei]{SimSun}%设置字体 + +\title{问题 384} +\author{Project Euler} + +\begin{document} +\maketitle + +定义数列 $a(n)$ 是 $n$ 的二进制数字中成对出现的$1$的对数。例如: +$$ +a(5)=a(101_2)=0,a(6)=a(110_2)=1,a(7)=a(111_2)=2 +$$ + +定义数列 $b(n)=(-1)^{a(n)}$。此数列被称为 Rudin-Shapiro 数列。\\ + + +考察数列 $b(n)$ 的前 $n$ 项和 $$s(n)=\sum^n_{i=0}b(i)$$ + + +此三个数列的前几项为 +\begin{center} +\begin{tabular}{lrrrrrrrr} + n & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\ + a(n) & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 2 \\ + b(n) & 1 & 1 & 1 & -1 & 1 & 1 & -1 & 1 \\ + s(n) & 1 & 2 & 3 & 2 & 3 & 4 & 3 & 4 \\ +\end{tabular} +\end{center} + +数列 $s(n)$ 有如下性质,所有数字都为整数,且每个数字出现的次数与其本身数值相等。\\ + +定义 $g(t,c)$,其中 $1 \leq c \leq t$,表示 $t$ 第 $c$ 次出现时的下标 $n$。 + +例如 $g(3,3)=6, g(4,2)=7, g(54321, 12345)=1220847710$。\\ + +令 $F(n)$ 是 fibonacci 数列,其中 $F(0) = F(1) = 1$。\\ + +定义 $GF(t)=g(F(t),F(t-1))$,求 +$$ +\sum_{t=2}^{45}GF(t) +$$ + +\end{document} diff --git a/python/39.py b/python/39.py new file mode 100644 index 0000000..98406cd --- /dev/null +++ b/python/39.py @@ -0,0 +1,21 @@ +a = {} + +for i in xrange(1, 1000): + for j in xrange(i, 1000): + tmp = i * i + j * j + sqr = int(tmp ** 0.5) + if tmp == sqr * sqr and i + j + sqr <= 1000: + tt = i + j + sqr + if a.keys().count(tt): + a.update({tt: a.get(tt) + 1}) + else: + a.update({tt: 1}) + + +mm = [0, 0] +for i in a.keys(): + if a.get(i) > mm[1]: + mm[0] = i + mm[1] = a.get(i) + +print mm diff --git a/python/4.py b/python/4.py new file mode 100644 index 0000000..d76d2cc --- /dev/null +++ b/python/4.py @@ -0,0 +1,4 @@ +# coding=utf-8 +''' A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 * 99. +Find the largest palindrome made from the product of two 3-digit numbers.. ''' + diff --git a/python/40.py b/python/40.py new file mode 100644 index 0000000..7da937c --- /dev/null +++ b/python/40.py @@ -0,0 +1,32 @@ +''' An irrational decimal fraction is created by concatenating the positive +integers: +0.123456789101112131415161718192021... +It can be seen that the 12th digit of the fractional part is 1. +If dn represents the nth digit of the fractional part, find the value of the following expression. +d1 * d10 * d100 * d1000 * d10000 * d100000 * d1000000 ''' + +from math import log10 + +def num(x, i): + if i > int(log10(x)): + raise IOError + else: + i = int(log10(x)) - i + while i > 0: + x /= 10 + i -= 1 + return x % 10 + +def d(x): + elem = [0, 9, 189, 2889, 38889, 488889, 5888889, 68888889] + for i in xrange(len(elem)): + if elem[i] >= x: + break + x -= elem[i - 1] + 1 + return num(10 ** (i - 1) + x / i, x % i) + +multi = 1 +for i in xrange(7): + multi *= d(10 ** i) + #print d(10 ** i) +print multi diff --git a/python/41.py b/python/41.py new file mode 100644 index 0000000..64887bc --- /dev/null +++ b/python/41.py @@ -0,0 +1,33 @@ +def pick(x, lis, out, a = 0): + if x == 0: + out.append(a) + return + a *= 10 + for i in xrange(len(lis)): + tmp = lis[:] + tmpa = a + lis[i] + tmp.pop(i) + pick(x - 1, tmp, out, tmpa) + + +def isprime(x): + if x == 2: + return True + if x % 2 == 0: + return False + temp = 3 + while temp <= int(x ** 0.5) + 1: + if x % temp == 0: return False + else: temp += 2 + return True + + +a = [1,2,3,4,5,6,7] +tt = [] +pick(len(a), a, tt) +tt.reverse() +for i in tt: + if isprime(i): + print i + break + diff --git a/python/42.py b/python/42.py new file mode 100644 index 0000000..313f237 --- /dev/null +++ b/python/42.py @@ -0,0 +1,29 @@ +def trinum(x): + if x == 1: + return True + x *= 2 + sqr = int(x ** 0.5) + if x == sqr * (sqr + 1): + return True + else: + return False + +filein = open('words.txt', 'r') +names = filein.read().split(',') +for ii in xrange(len(names)): + names[ii] = names[ii][1:-1] + +def score(nn): + mark = 0 + for i in nn: + mark += ord(i) - ord('A') + 1 + return mark + + +count = 0 +for i in names: + if trinum(score(i)): + #print '%3d\t' % score(i), i + count += 1 + +print count diff --git a/python/43.py b/python/43.py new file mode 100644 index 0000000..70eb3aa --- /dev/null +++ b/python/43.py @@ -0,0 +1,31 @@ + +def picksort(x, lis, out, a = 0): + if x == 0: + out.append(a) + return + a *= 10 + for i in xrange(len(lis)): + tmp = lis[:] + tmpa = a + lis[i] + tmp.pop(i) + picksort(x - 1, tmp, out, tmpa) + + + + +a = [0,1,2,3,4,6,7,8,9] +tt = [] +picksort(len(a), a, tt) + + +total = 0 +for i in tt: + tttt = str(i) + if tttt[0] != '0' and int(tttt[3]) % 2 == 0: + if int(tttt[2:5]) % 3 == 0 and int(tttt[5:8]) % 13 == 0 and int(tttt[6:]) % 17 == 0: + tmp = i % 10000 + (i / 10000 * 10 + 5) * 10000 + if int(str(tmp)[4:7]) % 7 == 0 and int(str(tmp)[5:8]) % 11 == 0: + print tmp + total += tmp + +print total diff --git a/python/44.py b/python/44.py new file mode 100644 index 0000000..e7d10e5 --- /dev/null +++ b/python/44.py @@ -0,0 +1,21 @@ +def test(x): + sq = 12 * x + 1 + ss = int(sq ** 0.5) + if ss * ss != sq: + return False + if ss % 6 != 5: + return False + return True + +def main(): + max = 3000 + for n in xrange(4, max): + for m in xrange(n + 1, max): + a = 3 * (m * m + n * n) - m - n + b = (m - n) * (3 * (m + n) - 1) + if test(a) and test(b): + print a / 2, b / 2, m, n + return + + +main() diff --git a/python/45.py b/python/45.py new file mode 100644 index 0000000..3a510c5 --- /dev/null +++ b/python/45.py @@ -0,0 +1,8 @@ +m = 166 +while 1: + five = m * (3 * m - 1) + n = int(five ** 0.5) + if five == n * (n + 1) and n % 2 == 1: + break + m += 1 +print m * (3 * m - 1) / 2 diff --git a/python/46.py b/python/46.py new file mode 100644 index 0000000..6071926 --- /dev/null +++ b/python/46.py @@ -0,0 +1,31 @@ +from math import sqrt, log10 + +def isp(x): + if x == 2: + return True + if x <= 1 or x & 1 == 0: + return False + for i in xrange(3, int(sqrt(x)) + 1, 2): + if x % i == 0: + return False + return True + + +def test(x): + sqr = int(sqrt((x - 1) / 2)) + for i in xrange(1, sqr + 1): + tt = x - 2 * i * i + if isp(tt): + return True + return False + + +n = 9 +while 1: + if not isp(n): + if not test(n): + print n + break + n += 2 + +#kkkk = input('end') diff --git a/python/47.py b/python/47.py new file mode 100644 index 0000000..7034561 --- /dev/null +++ b/python/47.py @@ -0,0 +1,37 @@ +def factor(x): + out = [] + if x % 2 == 0: + out.append(2) + while x % 2 == 0: + x /= 2 + i = 3 + while 1: + if x % i == 0: + out.append(i) + while x % i == 0: + x /= i + i += 2 + if i ** 2 > x: + out.append(x) + break + while out.count(1): + out.remove(1) + return out + + +def main(same): + n = 6 + num = 0 + while num != same: + if len(factor(n)) == same: + num += 1 + else: + num = 0 + n += 1 + return n + + +maxx = 4 +a = main(maxx) +for i in xrange(1, maxx + 1): + print a - i, factor(a - i) diff --git a/python/48.py b/python/48.py new file mode 100644 index 0000000..10ebc35 --- /dev/null +++ b/python/48.py @@ -0,0 +1,6 @@ +total = 0 + +for i in xrange(1, 1001): + total += i ** i + +print total % (10 ** 10) diff --git a/python/49.py b/python/49.py new file mode 100644 index 0000000..752d2e5 --- /dev/null +++ b/python/49.py @@ -0,0 +1,48 @@ +def alanum(x): + lis = [] + while x != 0: + lis.append(x % 10) + x /= 10 + return lis + +def pick(x, lis, out, a = 0): + if x == 0: + out.append([a, lis]) + return + a *= 10 + for i in xrange(len(lis)): + tmp = lis[:] + tmpa = a + lis[i] + tmp.pop(i) + pick(x - 1, tmp, out, tmpa) + +def isp(x): + if x == 2: + return True + if x <= 1 or x & 1 == 0: + return False + for i in xrange(3, int(x ** 0.5) + 1, 2): + if x % i == 0: + return False + return True + +def main(): + n = 1489 + while 1: + if isp(n): + tmp = alanum(n) + ttmp = [] + pick(4, tmp, ttmp) + tt = [] + for ti in ttmp: + tt.append(ti[0]) + #print n, tmp, tt + while tt.count(n) > 0: + tt.remove(n) + for ii in tt: + jj = 2 * ii - n + if jj > 0 and isp(ii) and isp(jj) and tt.count(jj): + return str(n) + str(ii) + str(jj) #(n, ii, jj) + n += 1 + +print main() diff --git a/python/5.py b/python/5.py new file mode 100644 index 0000000..2e11693 --- /dev/null +++ b/python/5.py @@ -0,0 +1,36 @@ +# coding=utf-8 +''' 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. +What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? ''' + +from time import time + +gcd = lambda x, y: (y == 0) and x or gcd(y, x % y) + + +def p1(maxx = 20): + maxx += 1 + + num = [] + for i in range(maxx): num.append(i) + + for i in range(2, maxx): + if num[i] > 1: + for j in range(i + 1, maxx): + if num[j] % num[i] == 0: num[j] /= num[i] + + total = 1 + for i in num[1 : maxx]: total *= num[i] + #print num + print total + + +def p2(maxx = 20): + n = 2 + for i in xrange(3, maxx + 1): + if n % i != 0: + n = n * i / gcd(n, i) + return n + +#p1(20) + +print p2(50000) diff --git a/python/50.py b/python/50.py new file mode 100644 index 0000000..eb6139c --- /dev/null +++ b/python/50.py @@ -0,0 +1,34 @@ +# coding=utf8 + +prime = [] +total = 0 +n = 2 + +def factor(x): + x = int(x) + if x <= 1: return 0 + else: + for i in xrange(2, int(x ** 0.5) + 1): + if x % i == 0: break + else: return x + return i + +while total <= 1000000: + if factor(n) == n: + total += n + prime.append(n) + n += 1 + +def search(): + for length in xrange(len(prime) - 1, 2, -1): + for start in xrange(0, len(prime) - length + 1): + sump = 0 + for tmp in prime[start: start + length]: + sump += tmp + if factor(sump) == sump: + print sump + print prime[start: start + length] + return 0 + +if __name__ == '__main__': + search() diff --git a/python/51.py b/python/51.py new file mode 100644 index 0000000..ddb553a --- /dev/null +++ b/python/51.py @@ -0,0 +1,57 @@ +from string import maketrans, translate + +def numbreak(x): + out = [] + while x != 0: + out.append(x % 10) + x /= 10 + return set(out) + +def numloop(x, a, lis): + out = [] + for i in xrange(10 - a): + tt = maketrans(str(a), str(i + a)) + tmp = int(translate(str(x), tt)) + if isp(tmp, lis): + out.append(tmp) + return out + +def isp(x, lis): + for i in lis: + if x % i == 0: + return False + if x < i ** 2: + break + return True + +def makeP(x): + p = [2] + P = [2] + n = 3 + while n < x: + for i in p: + if n % i == 0: + break + else: + P.append(n) + n += 2 + while n > p[-1] ** 2: + p.append(P[len(p)]) + return P + +prime = makeP(100000) + +def main(): + xx = 56003 + while 1: + ss = numbreak(xx) + for syn in xrange(3): + if syn in ss: + tmp = numloop(xx, syn, prime) + if len(tmp) >= 8: + print xx, tmp + return + xx += 2 + while not isp(xx, prime): xx += 2 + +main() diff --git a/python/52.py b/python/52.py new file mode 100644 index 0000000..214f279 --- /dev/null +++ b/python/52.py @@ -0,0 +1,24 @@ +def divnum(x): + out = [] + while x > 0: + out.append(x % 10) + x /= 10 + return out + + +def testnum(x, n): + a = divnum(x) + for i in xrange(2, n + 1): + b = divnum(x * i) + if set(a) != set(b): + return False + return True + + +n = 1 +while n < 1000000: + if testnum(n, 6): + break + n += 1 +for i in xrange(1, 7): + print n * i diff --git a/python/53.py b/python/53.py new file mode 100644 index 0000000..fc2dea6 --- /dev/null +++ b/python/53.py @@ -0,0 +1,26 @@ +def C(x, y): + if x * 2 > y: + return C(y - x, y) + out = 1 + for i in xrange(y, y - x, -1): + out *= i + for i in xrange(1, x + 1): + out /= i + return out + +total = [] +for i in xrange(1, 101): + j = 0 + tmp = 0 + for j in xrange(i + 1): + tmp = C(j, i) + if tmp < 1000000: + total.append((j, i, tmp)) + else: + break + if 2 * j < i: + for j in xrange(j - 1, -1, -1): + total.append((i - j, i)) + + +print 103 * 50 - len(total) diff --git a/python/54.py b/python/54.py new file mode 100644 index 0000000..d61e2ae --- /dev/null +++ b/python/54.py @@ -0,0 +1,61 @@ +#valuetab = ('High Card', 'One Pair', 'Two Pairs', 'Three of a Kind', 'Straight', 'Flush', 'Full House', 'Four of a Kind', 'Straight Flush', 'Royal Flush') + +trans = {'A':14, 'T':10, 'J':11, 'Q':12, 'K':13} + +def calc(x): + color = [] + num = [] + for i in x: + color.append(i[1]) + if '1' < i[0] <= '9': + num.append(ord(i[0]) - ord('0')) + else: + num.append(trans.get(i[0])) + num.sort() + num.append(0) + step = 1 + dic = {4:[], 3:[], 2:[], 1:[]} + same = 1 + for i in xrange(1, len(num)): + diff = num[i] - num[i - 1] + if diff == 0: + same += 1 + else: + dic.get(same).append(num[i - 1]) + same = 1 + if diff == 1: + step += 1 + if len(dic.get(4)): + return (7, dic.get(4)[0], dic.get(1)) + if len(dic.get(3)) == len(dic.get(2)) == 1: + return (6, dic.get(3)[0], dic.get(2)[0]) + flag = 0 + if len(set(color)) == 1: + if step == 5: + return (8, dic.get(1)[-2]) + flag = 5 + if step == 5: + return (flag, 4, num[-2]) + if len(dic.get(3)): + dic.get(1).reverse() + return (flag, 3, dic.get(3)[0], dic.get(1)) + if len(dic.get(2)) > 1: + dic.get(2).reverse() + return (flag, 2, dic.get(2), dic.get(1)) + dic.get(1).reverse() + if len(dic.get(2)): + return (flag, 1, dic.get(2)[0], dic.get(1)) + return (flag, 0, dic.get(1)) + +def main(): + ff = open('poker.txt', 'r') + out = 0 + for line in ff.readlines(): + strlis = line.split(' ') + if calc(strlis[0:5]) > calc(strlis[5:]): + out += 1 + ff.close() + return out + +#print calc(['7C','4C','4C','4C','7C']) +print main() diff --git a/python/55.py b/python/55.py new file mode 100644 index 0000000..2c3a0b4 --- /dev/null +++ b/python/55.py @@ -0,0 +1,39 @@ +def revnum(x): + out = 0 + while x != 0: + out *= 10 + out += x % 10 + x /= 10 + return out + +def isL(x_ori): + x = x_ori + x += revnum(x) + n = 0 + while n < 50: + x_ = revnum(x) + if x_ == x: + return False + x += x_ + n += 1 + return True + +def test(x): + n = 0 + while n < 50: + print x + x_ = revnum(x) + if x == x_: break + x += x_ + n += 1 + + +import time +a0 = time.clock() +be = [] +for i in xrange(1, 10001): + if isL(i): + be.append(i) +a1 = time.clock() +print be +print a1 - a0 diff --git a/python/56.py b/python/56.py new file mode 100644 index 0000000..71ec844 --- /dev/null +++ b/python/56.py @@ -0,0 +1,15 @@ +def numsum(x): + out = 0 + while x > 0: + out += x % 10 + x /= 10 + return out + + +mmax = [0, 0, 0] +for i in xrange(1, 101): + for j in xrange(1, 101): + tmp = numsum(i ** j) + if tmp > mmax[0]: + mmax = [tmp, i, j] +print mmax diff --git a/python/57.py b/python/57.py new file mode 100644 index 0000000..79e18c8 --- /dev/null +++ b/python/57.py @@ -0,0 +1,10 @@ +from math import log10 +sq2 = [(1, 1)] +count = 0 +for i in xrange(1, 1001): + last = sq2[len(sq2) - 1] + if int(log10(last[0])) > int(log10(last[1])): + print last + count += 1 + sq2.append((last[0] + 2 * last[1], last[0] + last[1])) +print count diff --git a/python/58.py b/python/58.py new file mode 100644 index 0000000..05ad685 --- /dev/null +++ b/python/58.py @@ -0,0 +1,28 @@ +laymax = lambda x: (2 * x + 1) ** 2 + +def isp(x): + if x == 2: + return True + if x <= 1 or x & 1 == 0: + return False + for i in xrange(3, int(x ** 0.5) + 1, 2): + if x % i == 0: + return False + return True + +be = 3 +non = 2 + +i = 2 +while 9 * be >= non: + tmp = laymax(i) + for j in xrange(4): + #print float(be) / (be + non) + if isp(tmp): + be += 1 + else: + non += 1 + tmp -= 2 * i + i += 1 + +print 2 * i - 1 diff --git a/python/59.py b/python/59.py new file mode 100644 index 0000000..2073494 --- /dev/null +++ b/python/59.py @@ -0,0 +1,18 @@ +from string import atoi + +fi = open('../lib/cipher1.txt', 'r') +st = fi.read() +li = st.split(',') +for i in xrange(len(li)): + li[i] = atoi(li[i]) + +'''['g', 'o', 'd']''' +de = [103, 111, 100] +count = 0 +string = '' +for i in xrange(len(li)): + count += li[i] ^ de[i % 3] + tmp = chr(li[i] ^ de[i % 3]) + string += tmp +print string +print count diff --git a/python/6.py b/python/6.py new file mode 100644 index 0000000..e46ee33 --- /dev/null +++ b/python/6.py @@ -0,0 +1,16 @@ +# coding=utf-8 +''' The sum of the squares of the first ten natural numbers is, +1^2 + 2^2 + ... + 10^2 = 385 +The square of the sum of the first ten natural numbers is, +(1 + 2 + ... + 10)^2 = 552 = 3025 +Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 385 = 2640. +Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum. ''' + +total = 0 +num = [] +for i in range(100): num.append(i + 1) +for i in range(100): + for j in range(i + 1, 100): + total += num[i] * num[j] +total *= 2 +print total diff --git a/python/60.py b/python/60.py new file mode 100644 index 0000000..c792400 --- /dev/null +++ b/python/60.py @@ -0,0 +1,76 @@ +def isp(x, lis): + for i in lis: + if x % i == 0: + return False + if x < i ** 2: + break + return True + +def makep(x): + p = [2] + P = [2] + n = 3 + while len(P) < x: + for i in p: + if n % i == 0: + break + else: + P.append(n) + n += 2 + while n > p[-1] ** 2: + p.append(P[len(p)]) + return P + +maxx = 1500 +prime = makep(maxx) +prime.remove(2) +prime.remove(5) + +#print len(prime) + +dic = {} +for i in xrange(len(prime)): + if i % (maxx / 10) == 0: + print i + tmp = set([]) + for j in xrange(i + 1, len(prime)): + aa = int(str(prime[i]) + str(prime[j])) + bb = int(str(prime[j]) + str(prime[i])) + if isp(aa, prime) and isp(bb, prime): + tmp.add(prime[j]) + if len(tmp) > 0: + dic.update({prime[i]: tmp}) + #print tmp + #else: + #print + +print len(dic.keys()) + +out = [] + +for x1 in dic.keys(): + for x2 in dic.get(x1): + if not x2 in dic.keys(): + continue + both2 = dic.get(x1) & dic.get(x2) + if len(both2) == 0: + continue + else: + for x3 in both2: + if not x3 in dic.keys(): + continue + both3 = both2 & dic.get(x3) + if len(both3) == 0: + continue + else: + for x4 in both3: + if not x4 in dic.keys(): + continue + both4 = both3 & dic.get(x4) + if len(both4) == 0: + continue + else: + for x5 in both4: + out.append([x1, x2, x3, x4, x5]) + +print sum(sorted(out)) diff --git a/python/61.py b/python/61.py new file mode 100644 index 0000000..1937bba --- /dev/null +++ b/python/61.py @@ -0,0 +1,74 @@ +from math import sqrt, log10 + +formula = {3:((1,1,0),(2,1),2), + 5:((3,-1,0),(6,-1),2), + 6:((2,-1,0),(4,-1),1), + 7:((5,-3,0),(10,-3),2), + 8:((3,-2,0),(6,-2),1)} + + +def poly(x, coef): + out = 0 + for i in coef: + out = x * out + i + return out + + +def tt_ori(x, f, fd, flag): + tmp = int(sqrt(flag * x)) + tmp_ = 0 + while tmp_ != tmp: + #print '*', tmp + tmp_ = tmp + tmp -= (poly(tmp, f) - flag * x) / poly(tmp, fd) + while poly(tmp, f) - flag * x > 0: + tmp -= 1 + return tmp + 1 + +def tt(x, num): + return tt_ori(x, formula.get(num)[0], formula.get(num)[1], formula.get(num)[2]) + +def test(x, num): + return poly(x, formula.get(num)[0]) / formula.get(num)[2] + +def sumri(num, n): + out = [] + tmp = tt(num, n) + while test(tmp, n) < num + 100: + out.append(tmp) + tmp += 1 + return out + + +def iter(num, lis, end, trap): + for i in lis: + trynum = sumri(num, i) + for j in trynum: + tmp = test(j, i) + if str(tmp)[2] == '0': + continue + if len(lis) == 1 and str(tmp)[2:] == end: + trap.append((tmp,j,i)) + total = 0 + for i in trap: + total += i[0] + print total + print trap + quit() + lis_ = lis[:] + lis_.remove(i) + trap.append((tmp, j,i)) + iter(tmp % 100 * 100, lis_, end, trap) + trap.pop(-1) + +def main(): + for i in xrange(32, 100): + tmp = i ** 2 + if str(tmp)[2] == '0': + continue + ch = str(tmp)[0:2] + iter(tmp % 100 * 100, [3,5,6,7,8], ch, [(tmp,i,4)]) + + +main() + diff --git a/python/62.py b/python/62.py new file mode 100644 index 0000000..533b535 --- /dev/null +++ b/python/62.py @@ -0,0 +1,38 @@ +def cuberoot(x): + sqr = int(x ** 0.5) + return rootiter(x, sqr) + +def rootiter(x, pre): + cur = pre - float(pre ** 3 - x) / (3 * pre ** 2) + if abs(cur - pre) <= 0.001: + return int(cur) + else: + return rootiter(x, cur) + +def breaknum(x): + out = [] + while x != 0: + out.append(str(x % 10)) + x /= 10 + return out + +def main(): + dic = {} + i = 1 + while 1: + tmplis = breaknum(i ** 3) + tmplis.sort() + tmp = ''.join(tmplis) + if dic.has_key(tmp): + dic.get(tmp).append(i) + if len(dic.get(tmp)) == 5: + return dic.get(tmp) + else: + dic.update({tmp:[i]}) + i += 1 + + +xx = main() +print xx +for i in xx: + print i ** 3 diff --git a/python/63.py b/python/63.py new file mode 100644 index 0000000..1e75f93 --- /dev/null +++ b/python/63.py @@ -0,0 +1,9 @@ +from math import log10 +total = [1] +for i in xrange(2, 10): + n = 1 + tmp = log10(i) + while int(n * tmp) + 1 == n: + total.append(i ** n) + n += 1 +print total diff --git a/python/64.py b/python/64.py new file mode 100644 index 0000000..e7aab8c --- /dev/null +++ b/python/64.py @@ -0,0 +1,29 @@ +def div(sq, sub, quo): + return (sq ** 0.5 + sub) / quo + + +def cor(x): + a = 0 + b = 1 + v = 0 + out = [] + ab = [] + while 1: + v = int(div(x, a, b)) + tmp = b * v - a + b = (x - tmp ** 2) / b + a = tmp + ab.append((a,b)) + out.append(v) + num = ab.index((a,b)) + 1 + if num != len(ab): + return (out[:num], out[num:]) + + + +total = 0 +for i in xrange(2, 10001): + if int(i ** 0.5) ** 2 != i: + if len(cor(i)[1]) % 2: + total += 1 +print tota diff --git a/python/65.py b/python/65.py new file mode 100644 index 0000000..fcd97c3 --- /dev/null +++ b/python/65.py @@ -0,0 +1,25 @@ +maxx = 99 + +a = [1] * maxx +for i in xrange(1, maxx, 3): + a[i] = ((i - 1) / 3 + 1) * 2 + +a.reverse() + + +x = [0, 1] +n = 0 +for i in a: + x[n % 2] += i * x[(n + 1) % 2] + n += 1 + +x[n % 2] += 2 * x[(n + 1) % 2] + +def sum(x): + out = 0 + while x != 0: + out += x %10 + x /= 10 + return out + +print sum(x[n % 2]) diff --git a/python/66.py b/python/66.py new file mode 100644 index 0000000..307ed88 --- /dev/null +++ b/python/66.py @@ -0,0 +1,53 @@ +def issq(x): + sqr = int(x ** 0.5) + if sqr ** 2 == x: + return True + return False + +def div(sq, sub, quo): + return (sq ** 0.5 + sub) / quo + + +def cor(x): + a = 0 + b = 1 + v = 0 + out = [] + ab = [] + while 1: + v = int(div(x, a, b)) + tmp = b * v - a + b = (x - tmp ** 2) / b + a = tmp + ab.append((a,b)) + out.append(v) + num = ab.index((a,b)) + 1 + if num != len(ab): + return out + + +def pair(lis): + a = 1 + b = lis[0] + for i in lis[1:]: + a, b = b, b * i + a + return (a,b) + +def sol(x): + if issq(x): return (0, 0) + pp = pair(cor(x)[-2::-1]) + a = pp[0] + b = pp[1] + if b ** 2 - x * a ** 2 == 1: + return (a, b) + else: + return (2 * a * b, b ** 2 + x * a ** 2) + +maxx = [0, 0] + +for i in xrange(2,1001): + tmp = sol(i)[1] + if tmp > maxx[0]: + maxx = [tmp, i] + +print maxx diff --git a/python/67.py b/python/67.py new file mode 100644 index 0000000..7cc807b --- /dev/null +++ b/python/67.py @@ -0,0 +1,44 @@ +a = [] + +ff = open('triangle.txt', 'r') +for i in ff.readlines(): + tmp = i.split(' ') + for j in xrange(len(tmp)): + tmp[j] = int(tmp[j]) + a.append(tmp) +ff.close() + + +path = a[-1][:] +for i in xrange(len(a) - 2, 0, -1): + newpath = [] + for j in xrange(i + 1): + better = max(path[j], path[j + 1]) + newpath.append(a[i][j] + better) + path = newpath +print max(path) + a[0][0] + + +''' +path = [[a[0][0], [a[0][0]]]] +for i in xrange(1, len(a)): + newpath = [] + tmp = path[0][1][:] + tmp.append(a[i][0]) + newpath.append([path[0][0] + a[i][0], tmp]) + for j in xrange(1, i): + flag = (path[j - 1][0] > path[j][0]) and -1 or 0 + tmp = path[j + flag][1][:] + tmp.append(a[i][j]) + newpath.append([path[j + flag][0] + a[i][j], tmp]) + tmp = path[i - 1][1][:] + tmp.append(a[i][i]) + newpath.append([path[i - 1][0] + a[i][i], tmp]) + path = newpath + +maxx = [0, 0] +for i in path: + if i[0] > maxx[0]: + maxx = i +print maxx +''' \ No newline at end of file diff --git a/python/69.py b/python/69.py new file mode 100644 index 0000000..12b9a61 --- /dev/null +++ b/python/69.py @@ -0,0 +1,51 @@ +def makeP(x): + p = [2] + P = [2] + n = 3 + while n < x: + for i in p: + if n % i == 0: + break + else: + P.append(n) + n += 2 + while p[-1] ** 2 < n: + p.append(P[len(p)]) + return P + +prime = makeP(1000) + +def factor(x): + dic = {} + for i in prime: + if i ** 2 > x: + break + if x % i == 0: + tmp = 0 + while x % i == 0: + tmp += 1 + x /= i + dic.update({i:tmp}) + if x != 1: + dic.update({x:1}) + return dic + + +def phi(x): + ff = factor(x) + out = 1 + for i in ff.keys(): + #print (i - 1) * i ** (ff.get(i) - 1) + out *= (i - 1) * i ** (ff.get(i) - 1) + return out + + + +maxx = [0, 0] +for i in xrange(2, 1000001): + if i % 100000 == 0: + print i + tmp = float(i) / phi(i) + if tmp > maxx[0]: + maxx = [tmp, i] +print maxx diff --git a/python/7.py b/python/7.py new file mode 100644 index 0000000..858bcce --- /dev/null +++ b/python/7.py @@ -0,0 +1,23 @@ +# coding=utf-8 +''' By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. +What is the 10 001st prime number? ''' + +import math + +def countp(count): + if count == 1: return 2 + prime = [2] + x = 1 + while 1: + for i in xrange(x ** 2 + (x + 1) % 2, (x + 1) ** 2, 2): + for p in prime: + if i % p == 0: break + else: count -= 1 + if count == 0: return i + x += 1 + for p in prime: + if x % p == 0: break + else: prime.append(x) + +if __name__ == '__main__': + print countp(10001) diff --git a/python/70.py b/python/70.py new file mode 100644 index 0000000..cc7bfa2 --- /dev/null +++ b/python/70.py @@ -0,0 +1,54 @@ +maxx = 10000000 + +def mkp(x): + P = [2] + p = [2] + n = 3 + while n < x: + for i in p: + if n % i == 0: + break + else: + P.append(n) + n += 2 + while n > p[-1] ** 2: + p.append(P[len(p)]) + return P + +prime = mkp(2 * maxx ** 0.5) + +p = maxx ** 0.5 +pi = 0 +for i in xrange(len(prime)): + if prime[i] > p: + pi = i + break +q = maxx / p +qi = 0 + +nn, dndn = 0, 1 + +while pi > 1: + pi -= 1 + p = prime[pi] + q = maxx / p + for i in xrange(len(prime) - 1, pi, -1): + if prime[i] < q: + qi = i + 1 + break + while qi > pi: + qi -= 1 + q = prime[qi] + n = p * q + if n > maxx: + continue + dn = p + q - 1 + if n * dndn > nn * dn: + sn = str(n) + sdn = str(n - dn) + if sorted(sn) == sorted(sdn): + nn = n + dndn = dn + break + +print nn \ No newline at end of file diff --git a/python/71.py b/python/71.py new file mode 100644 index 0000000..cba94b9 --- /dev/null +++ b/python/71.py @@ -0,0 +1,15 @@ +f = lambda x: 3 * x / 7 +gcd = lambda x, y: (y == 0) and x or gcd(y, x % y) + +maxx = [1] * 3 + +for i in xrange(1, 1000001): + if i % 7 == 0: + continue + tmpi = f(i) + if gcd(i, tmpi) == 1: + tmp = 3.0 / 7 - float(tmpi) / i + if tmp < maxx[0]: + maxx = [tmp, tmpi, i] + +print maxx diff --git a/python/72.py b/python/72.py new file mode 100644 index 0000000..474fc59 --- /dev/null +++ b/python/72.py @@ -0,0 +1,35 @@ +def phi(x, lis): + out = 1 + for p in lis: + if x % p == 0: + k = 0 + while x % p == 0: + k += 1 + x /= p + out *= p ** (k - 1) * (p - 1) + if x <= p ** 2: + if x == 1: + return out + return out * (x - 1) + +def makep(x): + p = [2] + P = [2] + n = 3 + while n < x: + for i in p: + if n % i == 0: + break + else: + P.append(n) + n += 2 + while n > p[-1] ** 2: + p.append(P[len(p)]) + return P + +prime = makep(1010) +total = 0 +for i in xrange(2, 1000001): + total += phi(i, prime) +print total + diff --git a/python/73.py b/python/73.py new file mode 100644 index 0000000..c125ddb --- /dev/null +++ b/python/73.py @@ -0,0 +1,10 @@ +gcd = lambda x, y: y == 0 and x or gcd(y, x % y) + + +total = 0 +for i in xrange(12001): + for j in xrange(i / 3 + 1, i / 2 + i % 2): + if gcd(i, j) == 1: + total += 1 + +print total diff --git a/python/74.py b/python/74.py new file mode 100644 index 0000000..5afe993 --- /dev/null +++ b/python/74.py @@ -0,0 +1,38 @@ +def mul(x): + out = 1 + while x != 1 and x != 0: + out *= x + x -= 1 + return out + +def next(x): + out = 0 + while x != 0: + out += mul(x % 10) + x /= 10 + return out + + +def make(x): + out = [x] + while 1: + tmp = next(out[-1]) + if out.count(tmp): + return out + out.append(tmp) + + +total = [] +bak = [] +for i in xrange(1, 2000):#1000001): + if bak.count(next(i)): + print i, bak + total.append([i, next(i)]) + continue + tmp = make(i) + if len(tmp) >= 60: + print i, tmp + total.append(tmp) + bak.append(tmp[1]) + +print total diff --git a/python/75.py b/python/75.py new file mode 100644 index 0000000..9a25b6c --- /dev/null +++ b/python/75.py @@ -0,0 +1,41 @@ +gcd_ori = lambda x, y: y == 0 and x or gcd_ori(y, x % y) + +def gcd(lis): + out = lis[0] + for i in lis: + out = gcd_ori(out, i) + return out + +def calc(i, j): + return (i ** 2 - j ** 2, 2 * i * j, i ** 2 + j ** 2) + +def make(x): + out = [] + for i in xrange(2, int(x ** 0.5)): + for j in xrange(1, i): + c = calc(i, j) + if gcd(c) == 1: + out.append(sum(c)) + return out + + +maxx = 1500000 +unit = make(maxx) +out = set([]) +delete = set([]) +for i in unit: + n = 1 + while 1: + tmp = i * n + if tmp > maxx: + break + if tmp in out: + out.remove(tmp) + delete.add(tmp) + else: + if not tmp in delete: + out.add(tmp) + n += 1 + + +print len(out) diff --git a/python/76.py b/python/76.py new file mode 100644 index 0000000..35d5de2 --- /dev/null +++ b/python/76.py @@ -0,0 +1,21 @@ +a = [0, 1, 2] +dic = {(2, 1): 1} +maxx = 100 + +from sys import argv +if len(argv) > 0: + maxx = int(argv[1]) + +def get(x, y): + if y >= x: + return a[x] + return dic.get((x, y)) + +for n in xrange(3, maxx + 1): + tmp = 0 + for i in xrange(1, n): + tmp += get(n - i, i) + dic.update({(n, i): tmp}) + a.append(tmp + 1) + +print a[-1] - 1 diff --git a/python/77.py b/python/77.py new file mode 100644 index 0000000..4a1c631 --- /dev/null +++ b/python/77.py @@ -0,0 +1,40 @@ +def mkp(x): + P = [2] + p = [2] + n = 3 + while n < x: + for i in p: + if n % i == 0: + break + else: + P.append(n) + n += 2 + while n > p[-1] ** 2: + p.append(P[len(p)]) + return P + +def get(x, y): + if x <= y: + return a[x] + return dic.get((x, y)) + +maxx = 5000 + +prime = mkp(10000) + +a = [0, 0, 1, 1, 1, 2] +dic = {(4, 3):1, (4, 2):1, (5, 3):1, (5, 2):0} +n = 5 +while a[-1] <= maxx: + n += 1 + tmp = 0 + for i in prime: + if i > n: + break + tmp += get(n - i, i) + #print n - i, i, get(n - i, i) + dic.update({(n, i):tmp}) + if n in prime: + tmp += 1 + a.append(tmp) +print len(a) - 1 \ No newline at end of file diff --git a/python/78.py b/python/78.py new file mode 100644 index 0000000..935c085 --- /dev/null +++ b/python/78.py @@ -0,0 +1,19 @@ +a = [0, 1, 2] +dic = {(2, 1): 1} +maxx = 1000 + +def get(x, y): + if y >= x: + return a[x] + return dic.get((x, y)) + +for n in xrange(3, maxx + 1): + tmp = 0 + for i in xrange(1, n): + tmp += get(n - i, i) + dic.update({(n, i): tmp}) + a.append(tmp + 1) + +for i in xrange(len(a)): + if a[i] % 10 == 0: + print i, a[i] \ No newline at end of file diff --git a/python/8.py b/python/8.py new file mode 100644 index 0000000..c7d0ac4 --- /dev/null +++ b/python/8.py @@ -0,0 +1,19 @@ +# coding=utf-8 +''' Discover the largest product of five consecutive digits in the 1000-digit number. ''' + +def va(string): + x = 1 + for i in range(len(string)): + x *= ord(string[i]) - ord('0') + return x + +ch = '731671765313306249192251196744265747423553491949349698352031277450632623957831801698480186947885184385861560789112949495459501737958331952853208805511125406987471585238630507156932909632952274430435576689664895044524452316173185640309871112172238311362229893423380308135336276614282806444486645238749303589072962904915604407723907138105158593079608667017242712188399879790879227492190169972088809377665727333001053367881220235421809751254540594752243258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450' +max = [0, 0, ''] +for i in range(len(ch) - 5): + temp = va(ch[i : i + 5]) + if temp > max[1]: + max[0] = i + max[1] = temp + max[2] = ch[i : i + 5] + +print max diff --git a/python/80.py b/python/80.py new file mode 100644 index 0000000..3de185d --- /dev/null +++ b/python/80.py @@ -0,0 +1,37 @@ +from math import sqrt, log10 + + +def newton(a, n = 2): + x = 0 + x_ = int(sqrt(a)) + if x_ ** n == a: + return x_ + while abs(x - x_) > 1: + x = x_ + tmp = x ** (n - 1) + x_ = x - (tmp * x - a) / tmp / n + x_ = int(x_) + while x ** n > a: + x -= 1 + return x + + +def numsum(x): + total = 0 + while x != 0: + total += x % 10 + x /= 10 + return total + + +def main(maxx): + ss = 0 + for i in xrange(maxx + 1): + if int(sqrt(i)) ** 2 == i: + continue + tmp = newton(i * 100 ** 99) + ss += numsum(tmp) + print ss + + + diff --git a/python/81.py b/python/81.py new file mode 100644 index 0000000..acef8ba --- /dev/null +++ b/python/81.py @@ -0,0 +1,43 @@ +a = [] +ff = open('matrix.txt.', 'r') +for i in ff.readlines(): + tmp = i.split(',') + for j in xrange(len(tmp)): + tmp[j] = int(tmp[j]) + a.append(tmp) +ff.close() + +path = [[a[0][0], [a[0][0]]]] +n = len(a) + +for k in xrange(1, n): + pathtmp = [] + tmp = [a[k][0] + path[0][0], path[0][1][:]] + tmp[1].append(a[k][0]) + pathtmp.append(tmp) + for i in xrange(1, k): + if path[i - 1][0] < path[i][0]: + flag = i - 1 + else: + flag = i + tmp = [path[flag][0] + a[k - i][i], path[flag][1][:]] + tmp[1].append(a[k - i][i]) + pathtmp.append(tmp) + tmp = [a[0][k] + path[k - 1][0], path[k - 1][1][:]] + tmp[1].append(a[0][k]) + pathtmp.append(tmp) + path = pathtmp + +for k in xrange(n, 2 * n - 1): + pathtmp = [] + for i in xrange(2 * n - 1 - k): + if path[i][0] < path[i + 1][0]: + flag = i + else: + flag = i + 1 + tmp = [path[flag][0] + a[n - 1 - i][k + i + 1 - n], path[flag][1][:]] + tmp[1].append(a[n - 1 - i][k + i + 1 - n]) + pathtmp.append(tmp) + path = pathtmp + +print path diff --git a/python/82.py b/python/82.py new file mode 100644 index 0000000..9bf204c --- /dev/null +++ b/python/82.py @@ -0,0 +1,88 @@ +a = [] +ff = open('../matrix.txt', 'r') +for i in ff.readlines(): + tmp = i.split(',') + for j in xrange(len(tmp)): + tmp[j] = int(tmp[j]) + a.append(tmp) +ff.close() + +n = len(a) + +path = [] +for i in xrange(n): + path.append([a[i][-1] + a[i][-2], []]) + +for j in xrange(n - 3, -1, -1): + #newpath = [a[0][j] + min(path[0][0], a[1][j] + path[1][0])] + if path[0][0] <= a[1][j] + path[1][0]: + tmp = path[0][1] + [(0, j)] + newpath.append([path[0][0] + a[0][j], tmp]) + else: + tmp = path[1][1] + [(1, j), (0, j)] + newpath.append([path[1][0] + a[1][j] + a[0][j], tmp]) + for i in xrange(1, n - 1): + better = min(a[i - 1][j] + path[i - 1][0], path[i][0], a[i + 1][j] + path[i + 1][0]) + #newpath.append(a[i][j] + better) + if better == path[i][0]: + tmp = path[i][1] + [(i, j)] + newpath.append([path[i][0] + a[i][j], tmp]) + elif better == a[i - 1][j] + path[i - 1][0]: + tmp = path[i - 1][1] + [(i - 1, j), (i, j)] + newpath.append([]) + #newpath.append(a[-1][j] + min(path[-1], a[-2][j] + path[-2])) + if path[-1][0] <= a[-2][j] + path[-2][0]: + tmp = path[-1][1] + [(n - 1, j)] + newpath.append([a[-1][j] + path[-1][0], tmp]) + else: + tmp = path[-1][1] + [(n - 2, j), (n - 1, j)] + newpath.append([a[-1][j] + a[-2][j] + path[-2][0], tmp]) + path = newpath + + +print sorted(path) + +''' + +path = [] +for i in xrange(n): + path.append([a[i][0], [[i, 0]]]) + + +for y in xrange(1, n): + pathtmp = [] + for x in xrange(n): + tmp = [[0, 0]] + #papapa = 0 + if x - 1 >= 0: + if a[x - 1][y] < a[x][y - 1]: + tmp.append([a[x - 1][y], -1, [x - 1, y]]) + path[x] = + else: + if not [x, y - 1] in path[x - 1][1]: + tmp.append([a[x][y - 1], -1, [x, y - 1]]) + #else: + #papapa += 1 + if x + 1 < n: + if a[x + 1][y] < a[x][y - 1]: + tmp.append([a[x + 1][y], 1, [x + 1, y]]) + else: + if not [x, y - 1] in path[x + 1][1]: + tmp.append([a[x][y - 1], 1, [x, y - 1]]) + #else: + #papapa += 2 + for item in tmp: + item[0] += path[x + item[1]][0] + tmp.sort() + #if papapa != 0: + #print papapa, "**", tmp + if len(tmp[0]) > 2: + last = [tmp[0][-1], [x, y]] + else: + last = [[x, y]] + pathtmp.append([tmp[0][0] + a[x][y], path[x + tmp[0][1]][1] + last]) + path = pathtmp + +path.sort() +print path[0] +''' diff --git a/python/85.py b/python/85.py new file mode 100644 index 0000000..583fbe7 --- /dev/null +++ b/python/85.py @@ -0,0 +1,24 @@ +def sum(m, n): + return m * n * (m + 1) * (n + 1) / 4 + +maxx = 2000000 +x = int((8 * maxx + 1) ** 0.5 / 2) +while sum(x, 1) < maxx: x += 1 + +orisub = abs(sum(x, 1) - maxx) +near = [orisub] +y = 1 + +while x > y: + tmp = maxx + y_lst = y + while tmp > maxx - orisub and y > 0: + tmp = sum(x, y) + if abs(tmp - maxx) < near[0]: + near = [abs(tmp - maxx), x, y] + y -= 1 + x -= 1 + y = y_lst + while sum(x, y) < maxx: y += 1 + +print near[1] * near[2] diff --git a/python/86.py b/python/86.py new file mode 100644 index 0000000..b639930 --- /dev/null +++ b/python/86.py @@ -0,0 +1,31 @@ +def test_ori(a, b): + tmp = a ** 2 + b ** 2 + sqr = int(tmp ** 0.5) + if tmp == sqr ** 2: return True + return False + +def test(a, b, c): + if test_ori(b + c, a): return 1 + return 0 + +def test1(a, b): + if test_ori(b + b, a): return 1 + return 0 + +total = 1975 +n = 100 +while 1: + tmp = 0 + for i in xrange(2, 2 * n + 1): + if test_ori(n, i): + #print i + tmp += i / 2 + if i > n: + tmp -= i - n - 1 + total += tmp + if total > 1000000: + break + #print n, tmp, total + n += 1 + +print n diff --git a/python/87.py b/python/87.py new file mode 100644 index 0000000..a9cd526 --- /dev/null +++ b/python/87.py @@ -0,0 +1,36 @@ +def makep(x): + P = [2] + p = [2] + n = 3 + while x > n: + for i in p: + if n % i == 0: + break + else: + P.append(n) + n += 2 + while n > p[-1] ** 2: + p.append(P[len(p)]) + return P + +maxx = 50000000 + +prime = makep(int(maxx ** 0.5)) + +def make(x, y, z): + return x ** 2 + y ** 3 + z ** 4 + +out = set([]) + +for i in prime: + for j in prime: + for k in prime: + tmp = make(i, j, k) + if tmp > maxx: + break + out.add(tmp) + if make(i, j, 2) > maxx: + break + if make(i, 2, 2) > maxx: + break +print len(out) diff --git a/python/88.py b/python/88.py new file mode 100644 index 0000000..be12ef0 --- /dev/null +++ b/python/88.py @@ -0,0 +1,16 @@ +def log2(x): + out = 0 + while x > 0: + x /= 2 + out += 1 + return out - 1 + +def break(x): + x -= 1 + n = int(x ** 0.5) + while x % n != 0: + n -= 1 + return (n, x / n) + +def A(k): + dd diff --git a/python/89.py b/python/89.py new file mode 100644 index 0000000..389bd79 --- /dev/null +++ b/python/89.py @@ -0,0 +1,42 @@ +dic = {'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000} +rdic = {1:'I', 2:'II', 3:'III', 4:'IV', 5:'V', 6:'VI', 7:'VII', 8:'VIII', 9:'IX', + 10:'X', 20:'XX', 30:'XXX', 40:'XL', 50:'L', 60:'LX', 70:'LXX', 80:'LXXX', + 90:'XC', 100:'C', 200:'CC', 300:'CCC', 400:'CD', 500:'D', 600:'DC', + 700:'DCC', 800:'DCCC', 900:'CM', 1000:'M'} + +def rtoi(ss): + out = dic.get(ss[-1]) + for i in xrange(len(ss) - 1): + if dic.get(ss[i]) < dic.get(ss[i + 1]): + out -= dic.get(ss[i]) + else: + out += dic.get(ss[i]) + return out + +def itor(num): + out = '' + thousand = num - num % 1000 + if num > 0: + out += rdic.get(1000) * (thousand / 1000) + num %= 1000 + hundred = num - num % 100 + if hundred > 0: + out += rdic.get(hundred) + num %= 100 + teen = num - num % 10 + if teen > 0: + out += rdic.get(teen) + num %= 10 + if num > 0: + out += rdic.get(num) + return out + +ff = open('../roman.txt', 'r') +lis = ff.readlines() +ff.close() + +count = 0 +for i in lis: + new = itor(rtoi(i.rstrip())) + count += abs(len(new) - len(i.rstrip())) +print count diff --git a/python/9.py b/python/9.py new file mode 100644 index 0000000..bf1284d --- /dev/null +++ b/python/9.py @@ -0,0 +1,8 @@ +# coding=utf-8 +''' A Pythagorean triplet is a set of three natural numbers, a b c, for which, +a^2 + b^2 = c^2 +For example, 3^2 + 4^2 = 9 + 16 = 25 = 5^2. +There exists exactly one Pythagorean triplet for which a + b + c = 1000. +Find the product abc. ''' + +import math diff --git a/python/91.py b/python/91.py new file mode 100644 index 0000000..c111985 --- /dev/null +++ b/python/91.py @@ -0,0 +1,25 @@ +from sys import argv + +n = int(argv[1]) +total = 3 * n ** 2 + +if n % 2 == 0: + total += n + +total += (n - 1) / 2 * n + +def gcd(x, y): + if y == 0: + return x + return gcd(y, x % y) + +for i in xrange(1, n - 1): + for j in xrange(i + 1, n + 1): + d = gcd(i, j) + i_ = i / d + j_ = j / d + total += min((n - i) / j_, j / i_) * 2 + total += min((n - j) / i_, i / j_) * 2 + + +print total diff --git a/python/92.py b/python/92.py new file mode 100644 index 0000000..e556835 --- /dev/null +++ b/python/92.py @@ -0,0 +1,58 @@ +maxx = 7 + +def make_iter(x, a, l, lis): + for i in xrange(a % 10, 10): + if l == x - 1: + lis.append(a * 10 + i) + else: + make_iter(x, a * 10 + i, l + 1, lis) + +def make(x): + if x == 1: + return [1,2,3,4,5,6,7,8,9] + out = [] + for i in xrange(1, 10): + make_iter(x - 1, i, 0, out) + return out + +#print make(5) + +def calc(x): + while 1: + a = 0 + while x != 0: + a += (x % 10) ** 2 + x /= 10 + if a == 1 or a == 89: + return a + else: + x = a + +#print calc(44) + +def fac(x): + out = 1 + for i in xrange(2, x + 1): + out *= i + return out + +def alanum(x): + x = str(x) + out = 1 + for i in xrange(maxx, maxx - len(x), -1): + out *= i + for i in set('.'.join(x).split('.')): + tmp = x.count(i) + if tmp > 1: + out /= fac(tmp) + return out + +#print alanum(113) + +count = 0 +for length in xrange(1, maxx + 1): + tmp = make(length) + for xx in tmp: + if calc(xx) == 89: + count += alanum(xx) +print count diff --git a/python/93.py b/python/93.py new file mode 100644 index 0000000..a554ca3 --- /dev/null +++ b/python/93.py @@ -0,0 +1,60 @@ +def two(a, b): + out = set([]) + out.add(a + b) + out.add(a * b) + '''if a != b: + out.add(abs(a - b))''' + out.add(a - b) + out.add(b - a) + if a != 0: + out.add(b / float(a)) + if b != 0: + out.add(a / float(b)) + return out + +def three(a, b, c): + out = set([]) + for i in two(a, b): + out |= two(i, c) + for i in two(a, c): + out |= two(i, b) + for i in two(b, c): + out |= two(i, a) + return out + +def four(a, b, c, d): + first = two(a, b) + second = two(c, d) + out = set([]) + for i in first: + out |= three(i, c, d) + for j in second: + out |= two(i, j) + for j in second: + out |= three(j, a, b) + return out + +def calc(a, b, c, d): + tmp = set([]) + tmp |= four(a, b, c, d) + tmp |= four(a, c, b, d) + tmp |= four(a, d, b, c) + out = [] + for i in tmp: + if i == int(i) > 0: + out.append(int(i)) + return sorted(out) + + +maxx = [0, 0] +for m in xrange(1, 10): + for n in xrange(m + 1, 10): + for s in xrange(n + 1, 10): + for t in xrange(s + 1, 10): + tmp = calc(m, n, s, t) + for i in xrange(len(tmp)): + if i + 1 != tmp[i]: + break + if i > maxx[0]: + maxx = [i, (m, n, s, t)] +print maxx diff --git a/python/94.py b/python/94.py new file mode 100644 index 0000000..71baa72 --- /dev/null +++ b/python/94.py @@ -0,0 +1,31 @@ +maxx = 1000000000 + +mul = 3 ** 0.5 +n = 0 +C = 0 +total = 0 +while 1: + n += 1 + m = int((mul + 2) * n) + m += 1 - (m + n) % 2 + C = 2 * (m + n) ** 2 + if C > maxx: break + if abs((m - n) ** 2 - 2 * m * n) == 1: + print 4 * m * n, m ** 2 + n ** 2 + total += C + +n = 0 +C = 0 +while 1: + n += 1 + m = int(mul * n) + m += 1 - (m + n) % 2 + xx = m ** 2 + yy = n ** 2 + C = 4 * xx + if C > maxx: break + if abs(xx - 3 * yy) == 1: + print 2 * (xx - yy), xx + yy + total += C + +print total diff --git a/python/96.py b/python/96.py new file mode 100644 index 0000000..62b651c --- /dev/null +++ b/python/96.py @@ -0,0 +1,201 @@ +from copy import deepcopy + +n = 3 +maxx = n ** 2 +allc = list(xrange(1, maxx + 1)) +for i in xrange(len(allc)): + allc[i] = str(allc[i]) + +area = [] +for x in xrange(maxx): + area.append([(x, i) for i in xrange(maxx)]) +for y in xrange(maxx): + area.append([(i, y) for i in xrange(maxx)]) +for i in xrange(n): + for j in xrange(n): + area.append([(x, y) for x in xrange(n * i, n * i + n) for y in xrange(n * j, n * j + n)]) + + + +def psh(x): + return [(x, i) for i in xrange(maxx)] + +def psv(y): + return [(i, y) for i in xrange(maxx)] + +def psb(x, y): + x0 = x // n * n + y0 = y // n * n + return [(i, j) for i in xrange(x0, x0 + n) for j in xrange(y0, y0 + n)] + +def unit(x, y, flag = 4): + out = set([]) + if flag == 1 or flag > 3: + for i in xrange(maxx): + out.add((x, i)) + if flag == 2 or flag > 3: + for i in xrange(maxx): + out.add((i, y)) + if flag == 3 or flag > 3: + x0 = x // n * n + y0 = y // n * n + for i in xrange(x0, x0 + n): + for j in xrange(y0, y0 + n): + out.add((i, j)) + return list(out) + + +def psudo(matrix): + for i in xrange(maxx): + for j in xrange(maxx): + if j % n == 0: + #print(' ', end='') + print '', + print matrix[i][j] + ' ',# end='') + print('') + if i % n == n - 1: + print('') + + + +def get(point, matrix): + out = set([]) + for i in point: + out.add(matrix[i[0]][i[1]]) + out.discard('0') + return out + + +def init(matrix): + out = {} + haveh = [get(psh(i), matrix) for i in xrange(maxx)] + havev = [get(psv(i), matrix) for i in xrange(maxx)] + haveb = [[get(psb(i * n, j * n), matrix) for j in xrange(n)] for i in xrange(n)] + for i in xrange(maxx): + for j in xrange(maxx): + if matrix[i][j] == '0': + tmp = set(allc) + tmp -= haveh[i] + tmp -= havev[j] + tmp -= haveb[i // n][j // n] + out.update({(i, j): tmp}) + return out + + +def rmkey(k, dic, matrix, value = ''): + tmp = list(dic[k])[0] + if len(value) == 1: + tmp = value + dic.pop(k) + matrix[k[0]][k[1]] = tmp + for p in unit(k[0], k[1]): + if p in dic.keys(): + dic[p].discard(tmp) + + +def one(dic, matrix): + while 1: + for k in dic.keys(): + if len(dic[k]) == 1: + rmkey(k, dic, matrix) + break + else: + return + + +def getd(dic): + for i in sorted(dic): + print i, dic[i] + + + +def diff(dic, matrix): + if len(dic.keys()) < 2: + return + for parea in area: + pnow = parea[:] + tt = [] + have = set([]) + for pp in parea: + if pp in dic.keys(): + tt.extend(list(dic[pp])) + have |= dic[pp] + else: + pnow.remove(pp) + for i in have: + if tt.count(i) == 1: + for thek in pnow: + try: + if i in dic[thek]: + rmkey(thek, dic, matrix, i) + except: + pass + #print thek + #getd(dic) + #psudo(matrix) + #continue + + +def esay(dic, matrix, trytime = 20): + limit = 0 + #out = ''.join(matrix[0][:n]) + while limit < trytime: #'0' in out and + one(dic, matrix) + diff(dic, matrix) + #out = ''.join(matrix[0][:n]) + limit += 1 + #psudo(matrix) + if limit < trytime: + return True + else: + for test in dic.values(): + if len(test) < 1: + return False + return True + + +def solve(matrix, trytime = 10): + dicc = init(matrix) + out = ''.join(matrix[0][:n]) + limit = 0 + while '0' in out: + limit += 1 + if limit > trytime: + for p in dicc.keys(): + if len(dicc[p]) == 2: + matrix_ = deepcopy(matrix) + dicc_ = deepcopy(dicc) + rmkey(p, dicc_, matrix_, list(dicc[p])[0]) + if esay(dicc_, matrix_): + dicc = dicc_ + matrix = matrix_ + else: + rmkey(p, dicc, matrix, list(dicc[p])[1]) + limit = 0 + break + else: + break + if esay(dicc, matrix): + out = ''.join(matrix[0][:n]) + limit += 1 + return int(out) + + +def main(): + ff = open('sudoku.txt', 'r') + nums = 0 + total = 0 + while nums < 50: + ff.readline() + aa = [] + nums += 1 + for i in xrange(maxx): + aa.append('.'.join(ff.readline().strip()).split('.')) + + tmp = solve(aa) + print tmp + total += tmp + + print '***', total + +main() diff --git a/python/97.py b/python/97.py new file mode 100644 index 0000000..c0567d3 --- /dev/null +++ b/python/97.py @@ -0,0 +1,19 @@ +def powmod(x, y, z): + ybi = [] + while y != 0: + ybi.append(y % 2) + y /= 2 + out = 1 + ybi.reverse() + for i in ybi: + out = out * out % z + if i == 1: + out = out * x % z + return out + + +a = powmod(2, 7830457, 100000000000) +b = a * 28433 + 1 +b %= 10000000000 + +print b diff --git a/python/98.py b/python/98.py new file mode 100644 index 0000000..4262062 --- /dev/null +++ b/python/98.py @@ -0,0 +1,115 @@ +ff = open('../words.txt', 'r') +ww = ff.readline() +ff.close() + +longest = 0 +dic = {} +lisw = ww.split(',') +for i in lisw: + i = i[1:-1] + if len(i) > 2: + tmp = '.'.join(i).split('.') + tmp = ''.join(sorted(tmp)) + if tmp in dic.keys(): + dic.get(tmp).append(i) + else: + dic.update({tmp:[i]}) + + +move = [] + +dicmove = {} + +def howtomove(a, b): + tmp = '' + for i in a: + tmp += str(b.index(i)) + if dicmove.has_key(tmp): + dicmove.get(tmp).append([a, b]) + else: + dicmove.update({tmp:[[a, b]]}) + return tmp + +def howtolis(lis): + out = set([]) + for i in lis: + for j in lis: + if i != j: + tmp = howtomove(i, j) + out.add(tmp) + return list(out) + +words = [] + + +for i in dic.keys(): + if len(dic.get(i)) > 1: + wordlen = len(i) + while len(move) - 1 < wordlen: + move.append([]) + words.append([]) + move[wordlen].extend(howtolis(dic.get(i))) + words[wordlen].extend(dic.get(i)) + +#print words +#print move + +def movenum(num, mm): + out = '' + num = str(num) + for i in xrange(len(mm)): + try: + out += num[int(mm[i])] + except IndexError: + return 3 + return int(out) + + +def issq(x): + tmp = int(x ** 0.5) + if tmp ** 2 == x: + return True + return False + +result = [] +length = len(move[-1][0]) +#print length +n = int((10 ** length) ** 0.5) +while length > 1 and n > 0: + sq = n ** 2 + length = len(str(sq)) + while len(move[length]) <= 0: + length -= 1 + n = int((10 ** length) ** 0.5) + for moveit in move[length]: + newsq = movenum(sq, moveit) + if len(str(sq)) == len(str(newsq)): + if issq(newsq): + #print sq, newsq + result.append([sq, dicmove.get(moveit)[0][0]]) + #if len(str(result[-1])) != len(str(result[0])): + #break + n -= 1 + +#print result + +for item in result: + nums = str(item[0]) + dicju1 = {} + dicju2 = {} + for i in xrange(len(item[1])): + numm = nums[i] + chh = item[1][i] + if numm in dicju1.keys(): + if chh != dicju1.get(numm): + break + else: + dicju1.update({numm:chh}) + if chh in dicju2.keys(): + if numm != dicju2.get(numm): + break + else: + dicju2.update({chh:numm}) + else: + print nums + quit() \ No newline at end of file diff --git a/python/99.py b/python/99.py new file mode 100644 index 0000000..5b04e39 --- /dev/null +++ b/python/99.py @@ -0,0 +1,16 @@ +ff = open('../base_exp.txt', 'r') +lis = ff.readlines() +ff.close() + +from math import log10 + +maxx = [0, 0] +for i in xrange(len(lis)): + tmp = lis[i].split(',') + base = int(tmp[0]) + power = int(tmp[1]) + loga = power * log10(base) + if loga > maxx[0]: + maxx = [loga, i + 1] + +print maxx diff --git a/roman.txt b/roman.txt new file mode 100644 index 0000000..50651c3 --- /dev/null +++ b/roman.txt @@ -0,0 +1,1000 @@ +MMMMDCLXXII +MMDCCCLXXXIII +MMMDLXVIIII +MMMMDXCV +DCCCLXXII +MMCCCVI +MMMCDLXXXVII +MMMMCCXXI +MMMCCXX +MMMMDCCCLXXIII +MMMCCXXXVII +MMCCCLXXXXIX +MDCCCXXIIII +MMCXCVI +CCXCVIII +MMMCCCXXXII +MDCCXXX +MMMDCCCL +MMMMCCLXXXVI +MMDCCCXCVI +MMMDCII +MMMCCXII +MMMMDCCCCI +MMDCCCXCII +MDCXX +CMLXXXVII +MMMXXI +MMMMCCCXIV +MLXXII +MCCLXXVIIII +MMMMCCXXXXI +MMDCCCLXXII +MMMMXXXI +MMMDCCLXXX +MMDCCCLXXIX +MMMMLXXXV +MCXXI +MDCCCXXXVII +MMCCCLXVII +MCDXXXV +CCXXXIII +CMXX +MMMCLXIV +MCCCLXXXVI +DCCCXCVIII +MMMDCCCCXXXIV +CDXVIIII +MMCCXXXV +MDCCCXXXII +MMMMD +MMDCCLXIX +MMMMCCCLXXXXVI +MMDCCXLII +MMMDCCCVIIII +DCCLXXXIIII +MDCCCCXXXII +MMCXXVII +DCCCXXX +CCLXIX +MMMXI +MMMMCMLXXXXVIII +MMMMDLXXXVII +MMMMDCCCLX +MMCCLIV +CMIX +MMDCCCLXXXIIII +CLXXXII +MMCCCCXXXXV +MMMMDLXXXVIIII +MMMDCCCXXI +MMDCCCCLXXVI +MCCCCLXX +MMCDLVIIII +MMMDCCCLIX +MMMMCCCCXIX +MMMDCCCLXXV +XXXI +CDLXXXIII +MMMCXV +MMDCCLXIII +MMDXXX +MMMMCCCLVII +MMMDCI +MMMMCDLXXXIIII +MMMMCCCXVI +CCCLXXXVIII +MMMMCML +MMMMXXIV +MMMCCCCXXX +DCCX +MMMCCLX +MMDXXXIII +CCCLXIII +MMDCCXIII +MMMCCCXLIV +CLXXXXI +CXVI +MMMMCXXXIII +CLXX +DCCCXVIII +MLXVII +DLXXXX +MMDXXI +MMMMDLXXXXVIII +MXXII +LXI +DCCCCXLIII +MMMMDV +MMMMXXXIV +MDCCCLVIII +MMMCCLXXII +MMMMDCCXXXVI +MMMMLXXXIX +MDCCCLXXXI +MMMMDCCCXV +MMMMCCCCXI +MMMMCCCLIII +MDCCCLXXI +MMCCCCXI +MLXV +MMCDLXII +MMMMDXXXXII +MMMMDCCCXL +MMMMCMLVI +CCLXXXIV +MMMDCCLXXXVI +MMCLII +MMMCCCCXV +MMLXXXIII +MMMV +MMMV +DCCLXII +MMDCCCCXVI +MMDCXLVIII +CCLIIII +CCCXXV +MMDCCLXXXVIIII +MMMMDCLXXVIII +MMMMDCCCXCI +MMMMCCCXX +MMCCXLV +MMMDCCCLXIX +MMCCLXIIII +MMMDCCCXLIX +MMMMCCCLXIX +CMLXXXXI +MCMLXXXIX +MMCDLXI +MMDCLXXVIII +MMMMDCCLXI +MCDXXV +DL +CCCLXXII +MXVIIII +MCCCCLXVIII +CIII +MMMDCCLXXIIII +MMMDVIII +MMMMCCCLXXXXVII +MMDXXVII +MMDCCLXXXXV +MMMMCXLVI +MMMDCCLXXXII +MMMDXXXVI +MCXXII +CLI +DCLXXXIX +MMMCLI +MDCLXIII +MMMMDCCXCVII +MMCCCLXXXV +MMMDCXXVIII +MMMCDLX +MMMCMLII +MMMIV +MMMMDCCCLVIII +MMMDLXXXVIII +MCXXIV +MMMMLXXVI +CLXXIX +MMMCCCCXXVIIII +DCCLXXXV +MMMDCCCVI +LI +CLXXXVI +MMMMCCCLXXVI +MCCCLXVI +CCXXXIX +MMDXXXXI +MMDCCCXLI +DCCCLXXXVIII +MMMMDCCCIV +MDCCCCXV +MMCMVI +MMMMCMLXXXXV +MMDCCLVI +MMMMCCXLVIII +DCCCCIIII +MMCCCCIII +MMMDCCLXXXVIIII +MDCCCLXXXXV +DVII +MMMV +DCXXV +MMDCCCXCV +DCVIII +MMCDLXVI +MCXXVIII +MDCCXCVIII +MMDCLX +MMMDCCLXIV +MMCDLXXVII +MMDLXXXIIII +MMMMCCCXXII +MMMDCCCXLIIII +DCCCCLXVII +MMMCLXXXXIII +MCCXV +MMMMDCXI +MMMMDCLXXXXV +MMMCCCLII +MMCMIX +MMDCCXXV +MMDLXXXVI +MMMMDCXXVIIII +DCCCCXXXVIIII +MMCCXXXIIII +MMDCCLXXVIII +MDCCLXVIIII +MMCCLXXXV +MMMMDCCCLXXXVIII +MMCMXCI +MDXLII +MMMMDCCXIV +MMMMLI +DXXXXIII +MMDCCXI +MMMMCCLXXXIII +MMMDCCCLXXIII +MDCLVII +MMCD +MCCCXXVII +MMMMDCCIIII +MMMDCCXLVI +MMMCLXXXVII +MMMCCVIIII +MCCCCLXXIX +DL +DCCCLXXVI +MMDXCI +MMMMDCCCCXXXVI +MMCII +MMMDCCCXXXXV +MMMCDXLV +MMDCXXXXIV +MMD +MDCCCLXXXX +MMDCXLIII +MMCCXXXII +MMDCXXXXVIIII +DCCCLXXI +MDXCVIIII +MMMMCCLXXVIII +MDCLVIIII +MMMCCCLXXXIX +MDCLXXXV +MDLVIII +MMMMCCVII +MMMMDCXIV +MMMCCCLXIIII +MMIIII +MMMMCCCLXXIII +CCIII +MMMCCLV +MMMDXIII +MMMCCCXC +MMMDCCCXXI +MMMMCCCCXXXII +CCCLVI +MMMCCCLXXXVI +MXVIIII +MMMCCCCXIIII +CLXVII +MMMCCLXX +CCCCLXIV +MMXXXXII +MMMMCCLXXXX +MXL +CCXVI +CCCCLVIIII +MMCCCII +MCCCLVIII +MMMMCCCX +MCDLXXXXIV +MDCCCXIII +MMDCCCXL +MMMMCCCXXIII +DXXXIV +CVI +MMMMDCLXXX +DCCCVII +MMCMLXIIII +MMMDCCCXXXIII +DCCC +MDIII +MMCCCLXVI +MMMCCCCLXXI +MMDCCCCXVIII +CCXXXVII +CCCXXV +MDCCCXII +MMMCMV +MMMMCMXV +MMMMDCXCI +DXXI +MMCCXLVIIII +MMMMCMLII +MDLXXX +MMDCLXVI +CXXI +MMMDCCCLIIII +MMMCXXI +MCCIII +MMDCXXXXI +CCXCII +MMMMDXXXV +MMMCCCLXV +MMMMDLXV +MMMCCCCXXXII +MMMCCCVIII +DCCCCLXXXXII +MMCLXIV +MMMMCXI +MLXXXXVII +MMMCDXXXVIII +MDXXII +MLV +MMMMDLXVI +MMMCXII +XXXIII +MMMMDCCCXXVI +MMMLXVIIII +MMMLX +MMMCDLXVII +MDCCCLVII +MMCXXXVII +MDCCCCXXX +MMDCCCLXIII +MMMMDCXLIX +MMMMCMXLVIII +DCCCLXXVIIII +MDCCCLIII +MMMCMLXI +MMMMCCLXI +MMDCCCLIII +MMMDCCCVI +MMDXXXXIX +MMCLXXXXV +MMDXXX +MMMXIII +DCLXXIX +DCCLXII +MMMMDCCLXVIII +MDCCXXXXIII +CCXXXII +MMMMDCXXV +MMMCCCXXVIII +MDCVIII +MMMCLXXXXIIII +CLXXXI +MDCCCCXXXIII +MMMMDCXXX +MMMDCXXIV +MMMCCXXXVII +MCCCXXXXIIII +CXVIII +MMDCCCCIV +MMMMCDLXXV +MMMDLXIV +MDXCIII +MCCLXXXI +MMMDCCCXXIV +MCXLIII +MMMDCCCI +MCCLXXX +CCXV +MMDCCLXXI +MMDLXXXIII +MMMMDCXVII +MMMCMLXV +MCLXVIII +MMMMCCLXXVI +MMMDCCLXVIIII +MMMMDCCCIX +DLXXXXIX +DCCCXXII +MMMMIII +MMMMCCCLXXVI +DCCCXCIII +DXXXI +MXXXIIII +CCXII +MMMDCCLXXXIIII +MMMCXX +MMMCMXXVII +DCCCXXXX +MMCDXXXVIIII +MMMMDCCXVIII +LV +MMMDCCCCVI +MCCCII +MMCMLXVIIII +MDCCXI +MMMMDLXVII +MMCCCCLXI +MMDCCV +MMMCCCXXXIIII +MMMMDI +MMMDCCCXCV +MMDCCLXXXXI +MMMDXXVI +MMMDCCCLVI +MMDCXXX +MCCCVII +MMMMCCCLXII +MMMMXXV +MMCMXXV +MMLVI +MMDXXX +MMMMCVII +MDC +MCCIII +MMMMDCC +MMCCLXXV +MMDCCCXXXXVI +MMMMCCCLXV +CDXIIII +MLXIIII +CCV +MMMCMXXXI +CCCCLXVI +MDXXXII +MMMMCCCLVIII +MMV +MMMCLII +MCMLI +MMDCCXX +MMMMCCCCXXXVI +MCCLXXXI +MMMCMVI +DCCXXX +MMMMCCCLXV +DCCCXI +MMMMDCCCXIV +CCCXXI +MMDLXXV +CCCCLXXXX +MCCCLXXXXII +MMDCIX +DCCXLIIII +DXIV +MMMMCLII +CDLXI +MMMCXXVII +MMMMDCCCCLXIII +MMMDCLIIII +MCCCCXXXXII +MMCCCLX +CCCCLIII +MDCCLXXVI +MCMXXIII +MMMMDLXXVIII +MMDCCCCLX +MMMCCCLXXXX +MMMCDXXVI +MMMDLVIII +CCCLXI +MMMMDCXXII +MMDCCCXXI +MMDCCXIII +MMMMCLXXXVI +MDCCCCXXVI +MDV +MMDCCCCLXXVI +MMMMCCXXXVII +MMMDCCLXXVIIII +MMMCCCCLXVII +DCCXLI +MMCLXXXVIII +MCCXXXVI +MMDCXLVIII +MMMMCXXXII +MMMMDCCLXVI +MMMMCMLI +MMMMCLXV +MMMMDCCCXCIV +MCCLXXVII +LXXVIIII +DCCLII +MMMCCCXCVI +MMMCLV +MMDCCCXXXXVIII +DCCCXV +MXC +MMDCCLXXXXVII +MMMMCML +MMDCCCLXXVIII +DXXI +MCCCXLI +DCLXXXXI +MMCCCLXXXXVIII +MDCCCCLXXVIII +MMMMDXXV +MMMDCXXXVI +MMMCMXCVII +MMXVIIII +MMMDCCLXXIV +MMMCXXV +DXXXVIII +MMMMCLXVI +MDXII +MMCCCLXX +CCLXXI +DXIV +MMMCLIII +DLII +MMMCCCXLIX +MMCCCCXXVI +MMDCXLIII +MXXXXII +CCCLXXXV +MDCLXXVI +MDCXII +MMMCCCLXXXIII +MMDCCCCLXXXII +MMMMCCCLXXXV +MMDCXXI +DCCCXXX +MMMDCCCCLII +MMMDCCXXII +MMMMCDXCVIII +MMMCCLXVIIII +MMXXV +MMMMCDXIX +MMMMCCCX +MMMCCCCLXVI +MMMMDCLXXVIIII +MMMMDCXXXXIV +MMMCMXII +MMMMXXXIII +MMMMDLXXXII +DCCCLIV +MDXVIIII +MMMCLXXXXV +CCCCXX +MMDIX +MMCMLXXXVIII +DCCXLIII +DCCLX +D +MCCCVII +MMMMCCCLXXXIII +MDCCCLXXIIII +MMMDCCCCLXXXVII +MMMMCCCVII +MMMDCCLXXXXVI +CDXXXIV +MCCLXVIII +MMMMDLX +MMMMDXII +MMMMCCCCLIIII +MCMLXXXXIII +MMMMDCCCIII +MMDCLXXXIII +MDCCCXXXXIV +XXXXVII +MMMDCCCXXXII +MMMDCCCXLII +MCXXXV +MDCXXVIIII +MMMCXXXXIIII +MMMMCDXVII +MMMDXXIII +MMMMCCCCLXI +DCLXXXXVIIII +LXXXXI +CXXXIII +MCDX +MCCLVII +MDCXXXXII +MMMCXXIV +MMMMLXXXX +MMDCCCCXLV +MLXXX +MMDCCCCLX +MCDLIII +MMMCCCLXVII +MMMMCCCLXXIV +MMMDCVIII +DCCCCXXIII +MMXCI +MMDCCIV +MMMMDCCCXXXIV +CCCLXXI +MCCLXXXII +MCMIII +CCXXXI +DCCXXXVIII +MMMMDCCXLVIIII +MMMMCMXXXV +DCCCLXXV +DCCXCI +MMMMDVII +MMMMDCCCLXVIIII +CCCXCV +MMMMDCCXX +MCCCCII +MMMCCCXC +MMMCCCII +MMDCCLXXVII +MMDCLIIII +CCXLIII +MMMDCXVIII +MMMCCCIX +MCXV +MMCCXXV +MLXXIIII +MDCCXXVI +MMMCCCXX +MMDLXX +MMCCCCVI +MMDCCXX +MMMMDCCCCXCV +MDCCCXXXII +MMMMDCCCCXXXX +XCIV +MMCCCCLX +MMXVII +MLXXI +MMMDXXVIII +MDCCCCII +MMMCMLVII +MMCLXXXXVIII +MDCCCCLV +MCCCCLXXIIII +MCCCLII +MCDXLVI +MMMMDXVIII +DCCLXXXIX +MMMDCCLXIV +MDCCCCXLIII +CLXXXXV +MMMMCCXXXVI +MMMDCCCXXI +MMMMCDLXXVII +MCDLIII +MMCCXLVI +DCCCLV +MCDLXX +DCLXXVIII +MMDCXXXIX +MMMMDCLX +MMDCCLI +MMCXXXV +MMMCCXII +MMMMCMLXII +MMMMCCV +MCCCCLXIX +MMMMCCIII +CLXVII +MCCCLXXXXIIII +MMMMDCVIII +MMDCCCLXI +MMLXXIX +CMLXIX +MMDCCCXLVIIII +DCLXII +MMMCCCXLVII +MDCCCXXXV +MMMMDCCXCVI +DCXXX +XXVI +MMLXIX +MMCXI +DCXXXVII +MMMMCCCXXXXVIII +MMMMDCLXI +MMMMDCLXXIIII +MMMMVIII +MMMMDCCCLXII +MDCXCI +MMCCCXXIIII +CCCCXXXXV +MMDCCCXXI +MCVI +MMDCCLXVIII +MMMMCXL +MLXVIII +CMXXVII +CCCLV +MDCCLXXXIX +MMMCCCCLXV +MMDCCLXII +MDLXVI +MMMCCCXVIII +MMMMCCLXXXI +MMCXXVII +MMDCCCLXVIII +MMMCXCII +MMMMDCLVIII +MMMMDCCCXXXXII +MMDCCCCLXXXXVI +MDCCXL +MDCCLVII +MMMMDCCCLXXXVI +DCCXXXIII +MMMMDCCCCLXXXV +MMCCXXXXVIII +MMMCCLXXVIII +MMMDCLXXVIII +DCCCI +MMMMLXXXXVIIII +MMMCCCCLXXII +MMCLXXXVII +CCLXVI +MCDXLIII +MMCXXVIII +MDXIV +CCCXCVIII +CLXXVIII +MMCXXXXVIIII +MMMDCLXXXIV +CMLVIII +MCDLIX +MMMMDCCCXXXII +MMMMDCXXXIIII +MDCXXI +MMMDCXLV +MCLXXVIII +MCDXXII +IV +MCDLXXXXIII +MMMMDCCLXV +CCLI +MMMMDCCCXXXVIII +DCLXII +MCCCLXVII +MMMMDCCCXXXVI +MMDCCXLI +MLXI +MMMCDLXVIII +MCCCCXCIII +XXXIII +MMMDCLXIII +MMMMDCL +DCCCXXXXIIII +MMDLVII +DXXXVII +MCCCCXXIIII +MCVII +MMMMDCCXL +MMMMCXXXXIIII +MCCCCXXIV +MMCLXVIII +MMXCIII +MDCCLXXX +MCCCLIIII +MMDCLXXI +MXI +MCMLIV +MMMCCIIII +DCCLXXXVIIII +MDCLIV +MMMDCXIX +CMLXXXI +DCCLXXXVII +XXV +MMMXXXVI +MDVIIII +CLXIII +MMMCDLVIIII +MMCCCCVII +MMMLXX +MXXXXII +MMMMCCCLXVIII +MMDCCCXXVIII +MMMMDCXXXXI +MMMMDCCCXXXXV +MMMXV +MMMMCCXVIIII +MMDCCXIIII +MMMXXVII +MDCCLVIIII +MMCXXIIII +MCCCLXXIV +DCLVIII +MMMLVII +MMMCXLV +MMXCVII +MMMCCCLXXXVII +MMMMCCXXII +DXII +MMMDLV +MCCCLXXVIII +MMMCLIIII +MMMMCLXXXX +MMMCLXXXIIII +MDCXXIII +MMMMCCXVI +MMMMDLXXXIII +MMMDXXXXIII +MMMMCCCCLV +MMMDLXXXI +MMMCCLXXVI +MMMMXX +MMMMDLVI +MCCCCLXXX +MMMXXII +MMXXII +MMDCCCCXXXI +MMMDXXV +MMMDCLXXXVIIII +MMMDLXXXXVII +MDLXIIII +CMXC +MMMXXXVIII +MDLXXXVIII +MCCCLXXVI +MMCDLIX +MMDCCCXVIII +MDCCCXXXXVI +MMMMCMIV +MMMMDCIIII +MMCCXXXV +XXXXVI +MMMMCCXVII +MMCCXXIV +MCMLVIIII +MLXXXIX +MMMMLXXXIX +CLXXXXIX +MMMDCCCCLVIII +MMMMCCLXXIII +MCCCC +DCCCLIX +MMMCCCLXXXII +MMMCCLXVIIII +MCLXXXV +CDLXXXVII +DCVI +MMX +MMCCXIII +MMMMDCXX +MMMMXXVIII +DCCCLXII +MMMMCCCXLIII +MMMMCLXV +DXCI +MMMMCLXXX +MMMDCCXXXXI +MMMMXXXXVI +DCLX +MMMCCCXI +MCCLXXX +MMCDLXXII +DCCLXXI +MMMCCCXXXVI +MCCCCLXXXVIIII +CDLVIII +DCCLVI +MMMMDCXXXVIII +MMCCCLXXXIII +MMMMDCCLXXV +MMMXXXVI +CCCLXXXXIX +CV +CCCCXIII +CCCCXVI +MDCCCLXXXIIII +MMDCCLXXXII +MMMMCCCCLXXXI +MXXV +MMCCCLXXVIIII +MMMCCXII +MMMMCCXXXIII +MMCCCLXXXVI +MMMDCCCLVIIII +MCCXXXVII +MDCLXXV +XXXV +MMDLI +MMMCCXXX +MMMMCXXXXV +CCCCLIX +MMMMDCCCLXXIII +MMCCCXVII +DCCCXVI +MMMCCCXXXXV +MDCCCCXCV +CLXXXI +MMMMDCCLXX +MMMDCCCIII +MMCLXXVII +MMMDCCXXIX +MMDCCCXCIIII +MMMCDXXIIII +MMMMXXVIII +MMMMDCCCCLXVIII +MDCCCXX +MMMMCDXXI +MMMMDLXXXIX +CCXVI +MDVIII +MMCCLXXI +MMMDCCCLXXI +MMMCCCLXXVI +MMCCLXI +MMMMDCCCXXXIV +DLXXXVI +MMMMDXXXII +MMMXXIIII +MMMMCDIV +MMMMCCCXLVIII +MMMMCXXXVIII +MMMCCCLXVI +MDCCXVIII +MMCXX +CCCLIX +MMMMDCCLXXII +MDCCCLXXV +MMMMDCCCXXIV +DCCCXXXXVIII +MMMDCCCCXXXVIIII +MMMMCCXXXV +MDCLXXXIII +MMCCLXXXIV +MCLXXXXIIII +DXXXXIII +MCCCXXXXVIII +MMCLXXIX +MMMMCCLXIV +MXXII +MMMCXIX +MDCXXXVII +MMDCCVI +MCLXXXXVIII +MMMCXVI +MCCCLX +MMMCDX +CCLXVIIII +MMMCCLX +MCXXVIII +LXXXII +MCCCCLXXXI +MMMI +MMMCCCLXIV +MMMCCCXXVIIII +CXXXVIII +MMCCCXX +MMMCCXXVIIII +MCCLXVI +MMMCCCCXXXXVI +MMDCCXCIX +MCMLXXI +MMCCLXVIII +CDLXXXXIII +MMMMDCCXXII +MMMMDCCLXXXVII +MMMDCCLIV +MMCCLXIII +MDXXXVII +DCCXXXIIII +MCII +MMMDCCCLXXI +MMMLXXIII +MDCCCLIII +MMXXXVIII +MDCCXVIIII +MDCCCCXXXVII +MMCCCXVI +MCMXXII +MMMCCCLVIII +MMMMDCCCXX +MCXXIII +MMMDLXI +MMMMDXXII +MDCCCX +MMDXCVIIII +MMMDCCCCVIII +MMMMDCCCCXXXXVI +MMDCCCXXXV +MMCXCIV +MCMLXXXXIII +MMMCCCLXXVI +MMMMDCLXXXV +CMLXIX +DCXCII +MMXXVIII +MMMMCCCXXX +XXXXVIIII \ No newline at end of file diff --git a/scheme/5.scm b/scheme/5.scm new file mode 100644 index 0000000..ad2d7df --- /dev/null +++ b/scheme/5.scm @@ -0,0 +1,22 @@ +(define (gcd x y) + (if (= y 0) x + (gcd y (modulo x y)))) + +(define (lcm x y) + (/ (* x y) (gcd x y))) + +(define (lcmlis lis) + (define (lcm-iter lis a) + (if (= (length lis) 1) (lcm (car lis) a) + (lcm-iter (cdr lis) (lcm a (car lis))))) + (lcm-iter (cdr lis) (car lis))) + +(define (makelis x) + (define (makelis-iter x lis) + (if (zero? x) lis + (makelis-iter (- x 1) (append (list x) lis)))) + (makelis-iter x '())) + + +(display (lcmlis (makelis 100))) +(newline) diff --git a/scheme/55.scm b/scheme/55.scm new file mode 100644 index 0000000..c733a55 --- /dev/null +++ b/scheme/55.scm @@ -0,0 +1,40 @@ +(use-modules (ice-9 time)) + +(define (revnum x) + (string->number + (list->string + (reverse + (string->list + (number->string x)))))) + +(define (testL x n) + (define x_ (revnum x)) + (if (> n 50) #t + (if (equal? x x_) #f + (testL (+ x x_) (+ n 1))))) + +(define (test x n lis) + (define x_ (revnum x)) + (if (> n 50) lis + (if (equal? x x_) (append lis (list x)) + (test (+ x x_) (+ n 1) (append lis (list x)))))) + +(define (isL x) + (set! x (+ x (revnum x))) + (testL x 1)) + +(define (main x n lis) + (if (> x n) lis + (main (+ x 1) + n + (if (isL x) (append lis (list x)) + lis)))) + +(define (showlist x) + (display (car x)) + (newline) + (if (> (length x) 1) + (showlist (cdr x)) + "end")) + +(main 1 10000 ()) diff --git a/scheme/80.scm b/scheme/80.scm new file mode 100644 index 0000000..0e259b1 --- /dev/null +++ b/scheme/80.scm @@ -0,0 +1,37 @@ +(define (int x) + (inexact->exact (floor x))) + +(define (newton a n) + (define (newton-iter a n x x-) + (if (<= (abs (- x x-)) 1) + (if (> (expt x n) a) (- x 1) x) + (let ((tmp (expt x- (- n 1)))) + (newton-iter a n x- (- x- (int (/ (- (* tmp x-) a) (* tmp n)))))))) + (newton-iter a n 0 (int (sqrt a)))) + +(define (numsum x) + (define (numsum-iter x a) + (if (= x 0) a + (numsum-iter (int (/ x 10)) (+ a (modulo x 10))))) + (numsum-iter x 0)) + +(define (main end) + (define (main-iter i end value) + (if (> i end) value + (if (= (expt (int (sqrt i)) 2) i) (main-iter (+ i 1) end value) + (main-iter (+ i 1) end + (+ value (numsum (newton (* i (expt 100 99)) 2))))))) + (define (main-tt i end a) + (display (list (- i 1) a)) + (newline) + (if (> i end) '() + (main-tt (+ i 1) end (main-iter 1 i 0)))) + (main-iter 2 end 0)) + + +(display (main 10)) +(newline) + + + + diff --git a/sudoku.txt b/sudoku.txt new file mode 100644 index 0000000..c82a83c --- /dev/null +++ b/sudoku.txt @@ -0,0 +1,500 @@ +Grid 01 +003020600 +900305001 +001806400 +008102900 +700000008 +006708200 +002609500 +800203009 +005010300 +Grid 02 +200080300 +060070084 +030500209 +000105408 +000000000 +402706000 +301007040 +720040060 +004010003 +Grid 03 +000000907 +000420180 +000705026 +100904000 +050000040 +000507009 +920108000 +034059000 +507000000 +Grid 04 +030050040 +008010500 +460000012 +070502080 +000603000 +040109030 +250000098 +001020600 +080060020 +Grid 05 +020810740 +700003100 +090002805 +009040087 +400208003 +160030200 +302700060 +005600008 +076051090 +Grid 06 +100920000 +524010000 +000000070 +050008102 +000000000 +402700090 +060000000 +000030945 +000071006 +Grid 07 +043080250 +600000000 +000001094 +900004070 +000608000 +010200003 +820500000 +000000005 +034090710 +Grid 08 +480006902 +002008001 +900370060 +840010200 +003704100 +001060049 +020085007 +700900600 +609200018 +Grid 09 +000900002 +050123400 +030000160 +908000000 +070000090 +000000205 +091000050 +007439020 +400007000 +Grid 10 +001900003 +900700160 +030005007 +050000009 +004302600 +200000070 +600100030 +042007006 +500006800 +Grid 11 +000125400 +008400000 +420800000 +030000095 +060902010 +510000060 +000003049 +000007200 +001298000 +Grid 12 +062340750 +100005600 +570000040 +000094800 +400000006 +005830000 +030000091 +006400007 +059083260 +Grid 13 +300000000 +005009000 +200504000 +020000700 +160000058 +704310600 +000890100 +000067080 +000005437 +Grid 14 +630000000 +000500008 +005674000 +000020000 +003401020 +000000345 +000007004 +080300902 +947100080 +Grid 15 +000020040 +008035000 +000070602 +031046970 +200000000 +000501203 +049000730 +000000010 +800004000 +Grid 16 +361025900 +080960010 +400000057 +008000471 +000603000 +259000800 +740000005 +020018060 +005470329 +Grid 17 +050807020 +600010090 +702540006 +070020301 +504000908 +103080070 +900076205 +060090003 +080103040 +Grid 18 +080005000 +000003457 +000070809 +060400903 +007010500 +408007020 +901020000 +842300000 +000100080 +Grid 19 +003502900 +000040000 +106000305 +900251008 +070408030 +800763001 +308000104 +000020000 +005104800 +Grid 20 +000000000 +009805100 +051907420 +290401065 +000000000 +140508093 +026709580 +005103600 +000000000 +Grid 21 +020030090 +000907000 +900208005 +004806500 +607000208 +003102900 +800605007 +000309000 +030020050 +Grid 22 +005000006 +070009020 +000500107 +804150000 +000803000 +000092805 +907006000 +030400010 +200000600 +Grid 23 +040000050 +001943600 +009000300 +600050002 +103000506 +800020007 +005000200 +002436700 +030000040 +Grid 24 +004000000 +000030002 +390700080 +400009001 +209801307 +600200008 +010008053 +900040000 +000000800 +Grid 25 +360020089 +000361000 +000000000 +803000602 +400603007 +607000108 +000000000 +000418000 +970030014 +Grid 26 +500400060 +009000800 +640020000 +000001008 +208000501 +700500000 +000090084 +003000600 +060003002 +Grid 27 +007256400 +400000005 +010030060 +000508000 +008060200 +000107000 +030070090 +200000004 +006312700 +Grid 28 +000000000 +079050180 +800000007 +007306800 +450708096 +003502700 +700000005 +016030420 +000000000 +Grid 29 +030000080 +009000500 +007509200 +700105008 +020090030 +900402001 +004207100 +002000800 +070000090 +Grid 30 +200170603 +050000100 +000006079 +000040700 +000801000 +009050000 +310400000 +005000060 +906037002 +Grid 31 +000000080 +800701040 +040020030 +374000900 +000030000 +005000321 +010060050 +050802006 +080000000 +Grid 32 +000000085 +000210009 +960080100 +500800016 +000000000 +890006007 +009070052 +300054000 +480000000 +Grid 33 +608070502 +050608070 +002000300 +500090006 +040302050 +800050003 +005000200 +010704090 +409060701 +Grid 34 +050010040 +107000602 +000905000 +208030501 +040070020 +901080406 +000401000 +304000709 +020060010 +Grid 35 +053000790 +009753400 +100000002 +090080010 +000907000 +080030070 +500000003 +007641200 +061000940 +Grid 36 +006080300 +049070250 +000405000 +600317004 +007000800 +100826009 +000702000 +075040190 +003090600 +Grid 37 +005080700 +700204005 +320000084 +060105040 +008000500 +070803010 +450000091 +600508007 +003010600 +Grid 38 +000900800 +128006400 +070800060 +800430007 +500000009 +600079008 +090004010 +003600284 +001007000 +Grid 39 +000080000 +270000054 +095000810 +009806400 +020403060 +006905100 +017000620 +460000038 +000090000 +Grid 40 +000602000 +400050001 +085010620 +038206710 +000000000 +019407350 +026040530 +900020007 +000809000 +Grid 41 +000900002 +050123400 +030000160 +908000000 +070000090 +000000205 +091000050 +007439020 +400007000 +Grid 42 +380000000 +000400785 +009020300 +060090000 +800302009 +000040070 +001070500 +495006000 +000000092 +Grid 43 +000158000 +002060800 +030000040 +027030510 +000000000 +046080790 +050000080 +004070100 +000325000 +Grid 44 +010500200 +900001000 +002008030 +500030007 +008000500 +600080004 +040100700 +000700006 +003004050 +Grid 45 +080000040 +000469000 +400000007 +005904600 +070608030 +008502100 +900000005 +000781000 +060000010 +Grid 46 +904200007 +010000000 +000706500 +000800090 +020904060 +040002000 +001607000 +000000030 +300005702 +Grid 47 +000700800 +006000031 +040002000 +024070000 +010030080 +000060290 +000800070 +860000500 +002006000 +Grid 48 +001007090 +590080001 +030000080 +000005800 +050060020 +004100000 +080000030 +100020079 +020700400 +Grid 49 +000003017 +015009008 +060000000 +100007000 +009000200 +000500004 +000000020 +500600340 +340200000 +Grid 50 +300200000 +000107000 +706030500 +070009080 +900020004 +010800050 +009040301 +000702000 +000008006 diff --git a/triangle.txt b/triangle.txt new file mode 100644 index 0000000..00aa2bc --- /dev/null +++ b/triangle.txt @@ -0,0 +1,100 @@ +59 +73 41 +52 40 09 +26 53 06 34 +10 51 87 86 81 +61 95 66 57 25 68 +90 81 80 38 92 67 73 +30 28 51 76 81 18 75 44 +84 14 95 87 62 81 17 78 58 +21 46 71 58 02 79 62 39 31 09 +56 34 35 53 78 31 81 18 90 93 15 +78 53 04 21 84 93 32 13 97 11 37 51 +45 03 81 79 05 18 78 86 13 30 63 99 95 +39 87 96 28 03 38 42 17 82 87 58 07 22 57 +06 17 51 17 07 93 09 07 75 97 95 78 87 08 53 +67 66 59 60 88 99 94 65 55 77 55 34 27 53 78 28 +76 40 41 04 87 16 09 42 75 69 23 97 30 60 10 79 87 +12 10 44 26 21 36 32 84 98 60 13 12 36 16 63 31 91 35 +70 39 06 05 55 27 38 48 28 22 34 35 62 62 15 14 94 89 86 +66 56 68 84 96 21 34 34 34 81 62 40 65 54 62 05 98 03 02 60 +38 89 46 37 99 54 34 53 36 14 70 26 02 90 45 13 31 61 83 73 47 +36 10 63 96 60 49 41 05 37 42 14 58 84 93 96 17 09 43 05 43 06 59 +66 57 87 57 61 28 37 51 84 73 79 15 39 95 88 87 43 39 11 86 77 74 18 +54 42 05 79 30 49 99 73 46 37 50 02 45 09 54 52 27 95 27 65 19 45 26 45 +71 39 17 78 76 29 52 90 18 99 78 19 35 62 71 19 23 65 93 85 49 33 75 09 02 +33 24 47 61 60 55 32 88 57 55 91 54 46 57 07 77 98 52 80 99 24 25 46 78 79 05 +92 09 13 55 10 67 26 78 76 82 63 49 51 31 24 68 05 57 07 54 69 21 67 43 17 63 12 +24 59 06 08 98 74 66 26 61 60 13 03 09 09 24 30 71 08 88 70 72 70 29 90 11 82 41 34 +66 82 67 04 36 60 92 77 91 85 62 49 59 61 30 90 29 94 26 41 89 04 53 22 83 41 09 74 90 +48 28 26 37 28 52 77 26 51 32 18 98 79 36 62 13 17 08 19 54 89 29 73 68 42 14 08 16 70 37 +37 60 69 70 72 71 09 59 13 60 38 13 57 36 09 30 43 89 30 39 15 02 44 73 05 73 26 63 56 86 12 +55 55 85 50 62 99 84 77 28 85 03 21 27 22 19 26 82 69 54 04 13 07 85 14 01 15 70 59 89 95 10 19 +04 09 31 92 91 38 92 86 98 75 21 05 64 42 62 84 36 20 73 42 21 23 22 51 51 79 25 45 85 53 03 43 22 +75 63 02 49 14 12 89 14 60 78 92 16 44 82 38 30 72 11 46 52 90 27 08 65 78 03 85 41 57 79 39 52 33 48 +78 27 56 56 39 13 19 43 86 72 58 95 39 07 04 34 21 98 39 15 39 84 89 69 84 46 37 57 59 35 59 50 26 15 93 +42 89 36 27 78 91 24 11 17 41 05 94 07 69 51 96 03 96 47 90 90 45 91 20 50 56 10 32 36 49 04 53 85 92 25 65 +52 09 61 30 61 97 66 21 96 92 98 90 06 34 96 60 32 69 68 33 75 84 18 31 71 50 84 63 03 03 19 11 28 42 75 45 45 +61 31 61 68 96 34 49 39 05 71 76 59 62 67 06 47 96 99 34 21 32 47 52 07 71 60 42 72 94 56 82 83 84 40 94 87 82 46 +01 20 60 14 17 38 26 78 66 81 45 95 18 51 98 81 48 16 53 88 37 52 69 95 72 93 22 34 98 20 54 27 73 61 56 63 60 34 63 +93 42 94 83 47 61 27 51 79 79 45 01 44 73 31 70 83 42 88 25 53 51 30 15 65 94 80 44 61 84 12 77 02 62 02 65 94 42 14 94 +32 73 09 67 68 29 74 98 10 19 85 48 38 31 85 67 53 93 93 77 47 67 39 72 94 53 18 43 77 40 78 32 29 59 24 06 02 83 50 60 66 +32 01 44 30 16 51 15 81 98 15 10 62 86 79 50 62 45 60 70 38 31 85 65 61 64 06 69 84 14 22 56 43 09 48 66 69 83 91 60 40 36 61 +92 48 22 99 15 95 64 43 01 16 94 02 99 19 17 69 11 58 97 56 89 31 77 45 67 96 12 73 08 20 36 47 81 44 50 64 68 85 40 81 85 52 09 +91 35 92 45 32 84 62 15 19 64 21 66 06 01 52 80 62 59 12 25 88 28 91 50 40 16 22 99 92 79 87 51 21 77 74 77 07 42 38 42 74 83 02 05 +46 19 77 66 24 18 05 32 02 84 31 99 92 58 96 72 91 36 62 99 55 29 53 42 12 37 26 58 89 50 66 19 82 75 12 48 24 87 91 85 02 07 03 76 86 +99 98 84 93 07 17 33 61 92 20 66 60 24 66 40 30 67 05 37 29 24 96 03 27 70 62 13 04 45 47 59 88 43 20 66 15 46 92 30 04 71 66 78 70 53 99 +67 60 38 06 88 04 17 72 10 99 71 07 42 25 54 05 26 64 91 50 45 71 06 30 67 48 69 82 08 56 80 67 18 46 66 63 01 20 08 80 47 07 91 16 03 79 87 +18 54 78 49 80 48 77 40 68 23 60 88 58 80 33 57 11 69 55 53 64 02 94 49 60 92 16 35 81 21 82 96 25 24 96 18 02 05 49 03 50 77 06 32 84 27 18 38 +68 01 50 04 03 21 42 94 53 24 89 05 92 26 52 36 68 11 85 01 04 42 02 45 15 06 50 04 53 73 25 74 81 88 98 21 67 84 79 97 99 20 95 04 40 46 02 58 87 +94 10 02 78 88 52 21 03 88 60 06 53 49 71 20 91 12 65 07 49 21 22 11 41 58 99 36 16 09 48 17 24 52 36 23 15 72 16 84 56 02 99 43 76 81 71 29 39 49 17 +64 39 59 84 86 16 17 66 03 09 43 06 64 18 63 29 68 06 23 07 87 14 26 35 17 12 98 41 53 64 78 18 98 27 28 84 80 67 75 62 10 11 76 90 54 10 05 54 41 39 66 +43 83 18 37 32 31 52 29 95 47 08 76 35 11 04 53 35 43 34 10 52 57 12 36 20 39 40 55 78 44 07 31 38 26 08 15 56 88 86 01 52 62 10 24 32 05 60 65 53 28 57 99 +03 50 03 52 07 73 49 92 66 80 01 46 08 67 25 36 73 93 07 42 25 53 13 96 76 83 87 90 54 89 78 22 78 91 73 51 69 09 79 94 83 53 09 40 69 62 10 79 49 47 03 81 30 +71 54 73 33 51 76 59 54 79 37 56 45 84 17 62 21 98 69 41 95 65 24 39 37 62 03 24 48 54 64 46 82 71 78 33 67 09 16 96 68 52 74 79 68 32 21 13 78 96 60 09 69 20 36 +73 26 21 44 46 38 17 83 65 98 07 23 52 46 61 97 33 13 60 31 70 15 36 77 31 58 56 93 75 68 21 36 69 53 90 75 25 82 39 50 65 94 29 30 11 33 11 13 96 02 56 47 07 49 02 +76 46 73 30 10 20 60 70 14 56 34 26 37 39 48 24 55 76 84 91 39 86 95 61 50 14 53 93 64 67 37 31 10 84 42 70 48 20 10 72 60 61 84 79 69 65 99 73 89 25 85 48 92 56 97 16 +03 14 80 27 22 30 44 27 67 75 79 32 51 54 81 29 65 14 19 04 13 82 04 91 43 40 12 52 29 99 07 76 60 25 01 07 61 71 37 92 40 47 99 66 57 01 43 44 22 40 53 53 09 69 26 81 07 +49 80 56 90 93 87 47 13 75 28 87 23 72 79 32 18 27 20 28 10 37 59 21 18 70 04 79 96 03 31 45 71 81 06 14 18 17 05 31 50 92 79 23 47 09 39 47 91 43 54 69 47 42 95 62 46 32 85 +37 18 62 85 87 28 64 05 77 51 47 26 30 65 05 70 65 75 59 80 42 52 25 20 44 10 92 17 71 95 52 14 77 13 24 55 11 65 26 91 01 30 63 15 49 48 41 17 67 47 03 68 20 90 98 32 04 40 68 +90 51 58 60 06 55 23 68 05 19 76 94 82 36 96 43 38 90 87 28 33 83 05 17 70 83 96 93 06 04 78 47 80 06 23 84 75 23 87 72 99 14 50 98 92 38 90 64 61 58 76 94 36 66 87 80 51 35 61 38 +57 95 64 06 53 36 82 51 40 33 47 14 07 98 78 65 39 58 53 06 50 53 04 69 40 68 36 69 75 78 75 60 03 32 39 24 74 47 26 90 13 40 44 71 90 76 51 24 36 50 25 45 70 80 61 80 61 43 90 64 11 +18 29 86 56 68 42 79 10 42 44 30 12 96 18 23 18 52 59 02 99 67 46 60 86 43 38 55 17 44 93 42 21 55 14 47 34 55 16 49 24 23 29 96 51 55 10 46 53 27 92 27 46 63 57 30 65 43 27 21 20 24 83 +81 72 93 19 69 52 48 01 13 83 92 69 20 48 69 59 20 62 05 42 28 89 90 99 32 72 84 17 08 87 36 03 60 31 36 36 81 26 97 36 48 54 56 56 27 16 91 08 23 11 87 99 33 47 02 14 44 73 70 99 43 35 33 +90 56 61 86 56 12 70 59 63 32 01 15 81 47 71 76 95 32 65 80 54 70 34 51 40 45 33 04 64 55 78 68 88 47 31 47 68 87 03 84 23 44 89 72 35 08 31 76 63 26 90 85 96 67 65 91 19 14 17 86 04 71 32 95 +37 13 04 22 64 37 37 28 56 62 86 33 07 37 10 44 52 82 52 06 19 52 57 75 90 26 91 24 06 21 14 67 76 30 46 14 35 89 89 41 03 64 56 97 87 63 22 34 03 79 17 45 11 53 25 56 96 61 23 18 63 31 37 37 47 +77 23 26 70 72 76 77 04 28 64 71 69 14 85 96 54 95 48 06 62 99 83 86 77 97 75 71 66 30 19 57 90 33 01 60 61 14 12 90 99 32 77 56 41 18 14 87 49 10 14 90 64 18 50 21 74 14 16 88 05 45 73 82 47 74 44 +22 97 41 13 34 31 54 61 56 94 03 24 59 27 98 77 04 09 37 40 12 26 87 09 71 70 07 18 64 57 80 21 12 71 83 94 60 39 73 79 73 19 97 32 64 29 41 07 48 84 85 67 12 74 95 20 24 52 41 67 56 61 29 93 35 72 69 +72 23 63 66 01 11 07 30 52 56 95 16 65 26 83 90 50 74 60 18 16 48 43 77 37 11 99 98 30 94 91 26 62 73 45 12 87 73 47 27 01 88 66 99 21 41 95 80 02 53 23 32 61 48 32 43 43 83 14 66 95 91 19 81 80 67 25 88 +08 62 32 18 92 14 83 71 37 96 11 83 39 99 05 16 23 27 10 67 02 25 44 11 55 31 46 64 41 56 44 74 26 81 51 31 45 85 87 09 81 95 22 28 76 69 46 48 64 87 67 76 27 89 31 11 74 16 62 03 60 94 42 47 09 34 94 93 72 +56 18 90 18 42 17 42 32 14 86 06 53 33 95 99 35 29 15 44 20 49 59 25 54 34 59 84 21 23 54 35 90 78 16 93 13 37 88 54 19 86 67 68 55 66 84 65 42 98 37 87 56 33 28 58 38 28 38 66 27 52 21 81 15 08 22 97 32 85 27 +91 53 40 28 13 34 91 25 01 63 50 37 22 49 71 58 32 28 30 18 68 94 23 83 63 62 94 76 80 41 90 22 82 52 29 12 18 56 10 08 35 14 37 57 23 65 67 40 72 39 93 39 70 89 40 34 07 46 94 22 20 05 53 64 56 30 05 56 61 88 27 +23 95 11 12 37 69 68 24 66 10 87 70 43 50 75 07 62 41 83 58 95 93 89 79 45 39 02 22 05 22 95 43 62 11 68 29 17 40 26 44 25 71 87 16 70 85 19 25 59 94 90 41 41 80 61 70 55 60 84 33 95 76 42 63 15 09 03 40 38 12 03 32 +09 84 56 80 61 55 85 97 16 94 82 94 98 57 84 30 84 48 93 90 71 05 95 90 73 17 30 98 40 64 65 89 07 79 09 19 56 36 42 30 23 69 73 72 07 05 27 61 24 31 43 48 71 84 21 28 26 65 65 59 65 74 77 20 10 81 61 84 95 08 52 23 70 +47 81 28 09 98 51 67 64 35 51 59 36 92 82 77 65 80 24 72 53 22 07 27 10 21 28 30 22 48 82 80 48 56 20 14 43 18 25 50 95 90 31 77 08 09 48 44 80 90 22 93 45 82 17 13 96 25 26 08 73 34 99 06 49 24 06 83 51 40 14 15 10 25 01 +54 25 10 81 30 64 24 74 75 80 36 75 82 60 22 69 72 91 45 67 03 62 79 54 89 74 44 83 64 96 66 73 44 30 74 50 37 05 09 97 70 01 60 46 37 91 39 75 75 18 58 52 72 78 51 81 86 52 08 97 01 46 43 66 98 62 81 18 70 93 73 08 32 46 34 +96 80 82 07 59 71 92 53 19 20 88 66 03 26 26 10 24 27 50 82 94 73 63 08 51 33 22 45 19 13 58 33 90 15 22 50 36 13 55 06 35 47 82 52 33 61 36 27 28 46 98 14 73 20 73 32 16 26 80 53 47 66 76 38 94 45 02 01 22 52 47 96 64 58 52 39 +88 46 23 39 74 63 81 64 20 90 33 33 76 55 58 26 10 46 42 26 74 74 12 83 32 43 09 02 73 55 86 54 85 34 28 23 29 79 91 62 47 41 82 87 99 22 48 90 20 05 96 75 95 04 43 28 81 39 81 01 28 42 78 25 39 77 90 57 58 98 17 36 73 22 63 74 51 +29 39 74 94 95 78 64 24 38 86 63 87 93 06 70 92 22 16 80 64 29 52 20 27 23 50 14 13 87 15 72 96 81 22 08 49 72 30 70 24 79 31 16 64 59 21 89 34 96 91 48 76 43 53 88 01 57 80 23 81 90 79 58 01 80 87 17 99 86 90 72 63 32 69 14 28 88 69 +37 17 71 95 56 93 71 35 43 45 04 98 92 94 84 96 11 30 31 27 31 60 92 03 48 05 98 91 86 94 35 90 90 08 48 19 33 28 68 37 59 26 65 96 50 68 22 07 09 49 34 31 77 49 43 06 75 17 81 87 61 79 52 26 27 72 29 50 07 98 86 01 17 10 46 64 24 18 56 +51 30 25 94 88 85 79 91 40 33 63 84 49 67 98 92 15 26 75 19 82 05 18 78 65 93 61 48 91 43 59 41 70 51 22 15 92 81 67 91 46 98 11 11 65 31 66 10 98 65 83 21 05 56 05 98 73 67 46 74 69 34 08 30 05 52 07 98 32 95 30 94 65 50 24 63 28 81 99 57 +19 23 61 36 09 89 71 98 65 17 30 29 89 26 79 74 94 11 44 48 97 54 81 55 39 66 69 45 28 47 13 86 15 76 74 70 84 32 36 33 79 20 78 14 41 47 89 28 81 05 99 66 81 86 38 26 06 25 13 60 54 55 23 53 27 05 89 25 23 11 13 54 59 54 56 34 16 24 53 44 06 +13 40 57 72 21 15 60 08 04 19 11 98 34 45 09 97 86 71 03 15 56 19 15 44 97 31 90 04 87 87 76 08 12 30 24 62 84 28 12 85 82 53 99 52 13 94 06 65 97 86 09 50 94 68 69 74 30 67 87 94 63 07 78 27 80 36 69 41 06 92 32 78 37 82 30 05 18 87 99 72 19 99 +44 20 55 77 69 91 27 31 28 81 80 27 02 07 97 23 95 98 12 25 75 29 47 71 07 47 78 39 41 59 27 76 13 15 66 61 68 35 69 86 16 53 67 63 99 85 41 56 08 28 33 40 94 76 90 85 31 70 24 65 84 65 99 82 19 25 54 37 21 46 33 02 52 99 51 33 26 04 87 02 08 18 96 +54 42 61 45 91 06 64 79 80 82 32 16 83 63 42 49 19 78 65 97 40 42 14 61 49 34 04 18 25 98 59 30 82 72 26 88 54 36 21 75 03 88 99 53 46 51 55 78 22 94 34 40 68 87 84 25 30 76 25 08 92 84 42 61 40 38 09 99 40 23 29 39 46 55 10 90 35 84 56 70 63 23 91 39 +52 92 03 71 89 07 09 37 68 66 58 20 44 92 51 56 13 71 79 99 26 37 02 06 16 67 36 52 58 16 79 73 56 60 59 27 44 77 94 82 20 50 98 33 09 87 94 37 40 83 64 83 58 85 17 76 53 02 83 52 22 27 39 20 48 92 45 21 09 42 24 23 12 37 52 28 50 78 79 20 86 62 73 20 59 +54 96 80 15 91 90 99 70 10 09 58 90 93 50 81 99 54 38 36 10 30 11 35 84 16 45 82 18 11 97 36 43 96 79 97 65 40 48 23 19 17 31 64 52 65 65 37 32 65 76 99 79 34 65 79 27 55 33 03 01 33 27 61 28 66 08 04 70 49 46 48 83 01 45 19 96 13 81 14 21 31 79 93 85 50 05 +92 92 48 84 59 98 31 53 23 27 15 22 79 95 24 76 05 79 16 93 97 89 38 89 42 83 02 88 94 95 82 21 01 97 48 39 31 78 09 65 50 56 97 61 01 07 65 27 21 23 14 15 80 97 44 78 49 35 33 45 81 74 34 05 31 57 09 38 94 07 69 54 69 32 65 68 46 68 78 90 24 28 49 51 45 86 35 +41 63 89 76 87 31 86 09 46 14 87 82 22 29 47 16 13 10 70 72 82 95 48 64 58 43 13 75 42 69 21 12 67 13 64 85 58 23 98 09 37 76 05 22 31 12 66 50 29 99 86 72 45 25 10 28 19 06 90 43 29 31 67 79 46 25 74 14 97 35 76 37 65 46 23 82 06 22 30 76 93 66 94 17 96 13 20 72 +63 40 78 08 52 09 90 41 70 28 36 14 46 44 85 96 24 52 58 15 87 37 05 98 99 39 13 61 76 38 44 99 83 74 90 22 53 80 56 98 30 51 63 39 44 30 91 91 04 22 27 73 17 35 53 18 35 45 54 56 27 78 48 13 69 36 44 38 71 25 30 56 15 22 73 43 32 69 59 25 93 83 45 11 34 94 44 39 92 +12 36 56 88 13 96 16 12 55 54 11 47 19 78 17 17 68 81 77 51 42 55 99 85 66 27 81 79 93 42 65 61 69 74 14 01 18 56 12 01 58 37 91 22 42 66 83 25 19 04 96 41 25 45 18 69 96 88 36 93 10 12 98 32 44 83 83 04 72 91 04 27 73 07 34 37 71 60 59 31 01 54 54 44 96 93 83 36 04 45 +30 18 22 20 42 96 65 79 17 41 55 69 94 81 29 80 91 31 85 25 47 26 43 49 02 99 34 67 99 76 16 14 15 93 08 32 99 44 61 77 67 50 43 55 87 55 53 72 17 46 62 25 50 99 73 05 93 48 17 31 70 80 59 09 44 59 45 13 74 66 58 94 87 73 16 14 85 38 74 99 64 23 79 28 71 42 20 37 82 31 23 +51 96 39 65 46 71 56 13 29 68 53 86 45 33 51 49 12 91 21 21 76 85 02 17 98 15 46 12 60 21 88 30 92 83 44 59 42 50 27 88 46 86 94 73 45 54 23 24 14 10 94 21 20 34 23 51 04 83 99 75 90 63 60 16 22 33 83 70 11 32 10 50 29 30 83 46 11 05 31 17 86 42 49 01 44 63 28 60 07 78 95 40 +44 61 89 59 04 49 51 27 69 71 46 76 44 04 09 34 56 39 15 06 94 91 75 90 65 27 56 23 74 06 23 33 36 69 14 39 05 34 35 57 33 22 76 46 56 10 61 65 98 09 16 69 04 62 65 18 99 76 49 18 72 66 73 83 82 40 76 31 89 91 27 88 17 35 41 35 32 51 32 67 52 68 74 85 80 57 07 11 62 66 47 22 67 +65 37 19 97 26 17 16 24 24 17 50 37 64 82 24 36 32 11 68 34 69 31 32 89 79 93 96 68 49 90 14 23 04 04 67 99 81 74 70 74 36 96 68 09 64 39 88 35 54 89 96 58 66 27 88 97 32 14 06 35 78 20 71 06 85 66 57 02 58 91 72 05 29 56 73 48 86 52 09 93 22 57 79 42 12 01 31 68 17 59 63 76 07 77 +73 81 14 13 17 20 11 09 01 83 08 85 91 70 84 63 62 77 37 07 47 01 59 95 39 69 39 21 99 09 87 02 97 16 92 36 74 71 90 66 33 73 73 75 52 91 11 12 26 53 05 26 26 48 61 50 90 65 01 87 42 47 74 35 22 73 24 26 56 70 52 05 48 41 31 18 83 27 21 39 80 85 26 08 44 02 71 07 63 22 05 52 19 08 20 +17 25 21 11 72 93 33 49 64 23 53 82 03 13 91 65 85 02 40 05 42 31 77 42 05 36 06 54 04 58 07 76 87 83 25 57 66 12 74 33 85 37 74 32 20 69 03 97 91 68 82 44 19 14 89 28 85 85 80 53 34 87 58 98 88 78 48 65 98 40 11 57 10 67 70 81 60 79 74 72 97 59 79 47 30 20 54 80 89 91 14 05 33 36 79 39 +60 85 59 39 60 07 57 76 77 92 06 35 15 72 23 41 45 52 95 18 64 79 86 53 56 31 69 11 91 31 84 50 44 82 22 81 41 40 30 42 30 91 48 94 74 76 64 58 74 25 96 57 14 19 03 99 28 83 15 75 99 01 89 85 79 50 03 95 32 67 44 08 07 41 62 64 29 20 14 76 26 55 48 71 69 66 19 72 44 25 14 01 48 74 12 98 07 +64 66 84 24 18 16 27 48 20 14 47 69 30 86 48 40 23 16 61 21 51 50 26 47 35 33 91 28 78 64 43 68 04 79 51 08 19 60 52 95 06 68 46 86 35 97 27 58 04 65 30 58 99 12 12 75 91 39 50 31 42 64 70 04 46 07 98 73 98 93 37 89 77 91 64 71 64 65 66 21 78 62 81 74 42 20 83 70 73 95 78 45 92 27 34 53 71 15 +30 11 85 31 34 71 13 48 05 14 44 03 19 67 23 73 19 57 06 90 94 72 57 69 81 62 59 68 88 57 55 69 49 13 07 87 97 80 89 05 71 05 05 26 38 40 16 62 45 99 18 38 98 24 21 26 62 74 69 04 85 57 77 35 58 67 91 79 79 57 86 28 66 34 72 51 76 78 36 95 63 90 08 78 47 63 45 31 22 70 52 48 79 94 15 77 61 67 68 +23 33 44 81 80 92 93 75 94 88 23 61 39 76 22 03 28 94 32 06 49 65 41 34 18 23 08 47 62 60 03 63 33 13 80 52 31 54 73 43 70 26 16 69 57 87 83 31 03 93 70 81 47 95 77 44 29 68 39 51 56 59 63 07 25 70 07 77 43 53 64 03 94 42 95 39 18 01 66 21 16 97 20 50 90 16 70 10 95 69 29 06 25 61 41 26 15 59 63 35 diff --git a/triangles.txt b/triangles.txt new file mode 100644 index 0000000..7e435c1 --- /dev/null +++ b/triangles.txt @@ -0,0 +1,1001 @@ + +-340,495,-153,-910,835,-947 +-175,41,-421,-714,574,-645 +-547,712,-352,579,951,-786 +419,-864,-83,650,-399,171 +-429,-89,-357,-930,296,-29 +-734,-702,823,-745,-684,-62 +-971,762,925,-776,-663,-157 +162,570,628,485,-807,-896 +641,91,-65,700,887,759 +215,-496,46,-931,422,-30 +-119,359,668,-609,-358,-494 +440,929,968,214,760,-857 +-700,785,838,29,-216,411 +-770,-458,-325,-53,-505,633 +-752,-805,349,776,-799,687 +323,5,561,-36,919,-560 +-907,358,264,320,204,274 +-728,-466,350,969,292,-345 +940,836,272,-533,748,185 +411,998,813,520,316,-949 +-152,326,658,-762,148,-651 +330,507,-9,-628,101,174 +551,-496,772,-541,-702,-45 +-164,-489,-90,322,631,-59 +673,366,-4,-143,-606,-704 +428,-609,801,-449,740,-269 +453,-924,-785,-346,-853,111 +-738,555,-181,467,-426,-20 +958,-692,784,-343,505,-569 +620,27,263,54,-439,-726 +804,87,998,859,871,-78 +-119,-453,-709,-292,-115,-56 +-626,138,-940,-476,-177,-274 +-11,160,142,588,446,158 +538,727,550,787,330,810 +420,-689,854,-546,337,516 +872,-998,-607,748,473,-192 +653,440,-516,-985,808,-857 +374,-158,331,-940,-338,-641 +137,-925,-179,771,734,-715 +-314,198,-115,29,-641,-39 +759,-574,-385,355,590,-603 +-189,-63,-168,204,289,305 +-182,-524,-715,-621,911,-255 +331,-816,-833,471,168,126 +-514,581,-855,-220,-731,-507 +129,169,576,651,-87,-458 +783,-444,-881,658,-266,298 +603,-430,-598,585,368,899 +43,-724,962,-376,851,409 +-610,-646,-883,-261,-482,-881 +-117,-237,978,641,101,-747 +579,125,-715,-712,208,534 +672,-214,-762,372,874,533 +-564,965,38,715,367,242 +500,951,-700,-981,-61,-178 +-382,-224,-959,903,-282,-60 +-355,295,426,-331,-591,655 +892,128,958,-271,-993,274 +-454,-619,302,138,-790,-874 +-642,601,-574,159,-290,-318 +266,-109,257,-686,54,975 +162,628,-478,840,264,-266 +466,-280,982,1,904,-810 +721,839,730,-807,777,981 +-129,-430,748,263,943,96 +434,-94,410,-990,249,-704 +237,42,122,-732,44,-51 +909,-116,-229,545,292,717 +824,-768,-807,-370,-262,30 +675,58,332,-890,-651,791 +363,825,-717,254,684,240 +405,-715,900,166,-589,422 +-476,686,-830,-319,634,-807 +633,837,-971,917,-764,207 +-116,-44,-193,-70,908,809 +-26,-252,998,408,70,-713 +-601,645,-462,842,-644,-591 +-160,653,274,113,-138,687 +369,-273,-181,925,-167,-693 +-338,135,480,-967,-13,-840 +-90,-270,-564,695,161,907 +607,-430,869,-713,461,-469 +919,-165,-776,522,606,-708 +-203,465,288,207,-339,-458 +-453,-534,-715,975,838,-677 +-973,310,-350,934,546,-805 +-835,385,708,-337,-594,-772 +-14,914,900,-495,-627,594 +833,-713,-213,578,-296,699 +-27,-748,484,455,915,291 +270,889,739,-57,442,-516 +119,811,-679,905,184,130 +-678,-469,925,553,612,482 +101,-571,-732,-842,644,588 +-71,-737,566,616,957,-663 +-634,-356,90,-207,936,622 +598,443,964,-895,-58,529 +847,-467,929,-742,91,10 +-633,829,-780,-408,222,-30 +-818,57,275,-38,-746,198 +-722,-825,-549,597,-391,99 +-570,908,430,873,-103,-360 +342,-681,512,434,542,-528 +297,850,479,609,543,-357 +9,784,212,548,56,859 +-152,560,-240,-969,-18,713 +140,-133,34,-635,250,-163 +-272,-22,-169,-662,989,-604 +471,-765,355,633,-742,-118 +-118,146,942,663,547,-376 +583,16,162,264,715,-33 +-230,-446,997,-838,561,555 +372,397,-729,-318,-276,649 +92,982,-970,-390,-922,922 +-981,713,-951,-337,-669,670 +-999,846,-831,-504,7,-128 +455,-954,-370,682,-510,45 +822,-960,-892,-385,-662,314 +-668,-686,-367,-246,530,-341 +-723,-720,-926,-836,-142,757 +-509,-134,384,-221,-873,-639 +-803,-52,-706,-669,373,-339 +933,578,631,-616,770,555 +741,-564,-33,-605,-576,275 +-715,445,-233,-730,734,-704 +120,-10,-266,-685,-490,-17 +-232,-326,-457,-946,-457,-116 +811,52,639,826,-200,147 +-329,279,293,612,943,955 +-721,-894,-393,-969,-642,453 +-688,-826,-352,-75,371,79 +-809,-979,407,497,858,-248 +-485,-232,-242,-582,-81,849 +141,-106,123,-152,806,-596 +-428,57,-992,811,-192,478 +864,393,122,858,255,-876 +-284,-780,240,457,354,-107 +956,605,-477,44,26,-678 +86,710,-533,-815,439,327 +-906,-626,-834,763,426,-48 +201,-150,-904,652,475,412 +-247,149,81,-199,-531,-148 +923,-76,-353,175,-121,-223 +427,-674,453,472,-410,585 +931,776,-33,85,-962,-865 +-655,-908,-902,208,869,792 +-316,-102,-45,-436,-222,885 +-309,768,-574,653,745,-975 +896,27,-226,993,332,198 +323,655,-89,260,240,-902 +501,-763,-424,793,813,616 +993,375,-938,-621,672,-70 +-880,-466,-283,770,-824,143 +63,-283,886,-142,879,-116 +-964,-50,-521,-42,-306,-161 +724,-22,866,-871,933,-383 +-344,135,282,966,-80,917 +-281,-189,420,810,362,-582 +-515,455,-588,814,162,332 +555,-436,-123,-210,869,-943 +589,577,232,286,-554,876 +-773,127,-58,-171,-452,125 +-428,575,906,-232,-10,-224 +437,276,-335,-348,605,878 +-964,511,-386,-407,168,-220 +307,513,912,-463,-423,-416 +-445,539,273,886,-18,760 +-396,-585,-670,414,47,364 +143,-506,754,906,-971,-203 +-544,472,-180,-541,869,-465 +-779,-15,-396,890,972,-220 +-430,-564,503,182,-119,456 +89,-10,-739,399,506,499 +954,162,-810,-973,127,870 +890,952,-225,158,828,237 +-868,952,349,465,574,750 +-915,369,-975,-596,-395,-134 +-135,-601,575,582,-667,640 +413,890,-560,-276,-555,-562 +-633,-269,561,-820,-624,499 +371,-92,-784,-593,864,-717 +-971,655,-439,367,754,-951 +172,-347,36,279,-247,-402 +633,-301,364,-349,-683,-387 +-780,-211,-713,-948,-648,543 +72,58,762,-465,-66,462 +78,502,781,-832,713,836 +-431,-64,-484,-392,208,-343 +-64,101,-29,-860,-329,844 +398,391,828,-858,700,395 +578,-896,-326,-604,314,180 +97,-321,-695,185,-357,852 +854,839,283,-375,951,-209 +194,96,-564,-847,162,524 +-354,532,494,621,580,560 +419,-678,-450,926,-5,-924 +-661,905,519,621,-143,394 +-573,268,296,-562,-291,-319 +-211,266,-196,158,564,-183 +18,-585,-398,777,-581,864 +790,-894,-745,-604,-418,70 +848,-339,150,773,11,851 +-954,-809,-53,-20,-648,-304 +658,-336,-658,-905,853,407 +-365,-844,350,-625,852,-358 +986,-315,-230,-159,21,180 +-15,599,45,-286,-941,847 +-613,-68,184,639,-987,550 +334,675,-56,-861,923,340 +-848,-596,960,231,-28,-34 +707,-811,-994,-356,-167,-171 +-470,-764,72,576,-600,-204 +379,189,-542,-576,585,800 +440,540,-445,-563,379,-334 +-155,64,514,-288,853,106 +-304,751,481,-520,-708,-694 +-709,132,594,126,-844,63 +723,471,421,-138,-962,892 +-440,-263,39,513,-672,-954 +775,809,-581,330,752,-107 +-376,-158,335,-708,-514,578 +-343,-769,456,-187,25,413 +548,-877,-172,300,-500,928 +938,-102,423,-488,-378,-969 +-36,564,-55,131,958,-800 +-322,511,-413,503,700,-847 +-966,547,-88,-17,-359,-67 +637,-341,-437,-181,527,-153 +-74,449,-28,3,485,189 +-997,658,-224,-948,702,-807 +-224,736,-896,127,-945,-850 +-395,-106,439,-553,-128,124 +-841,-445,-758,-572,-489,212 +633,-327,13,-512,952,771 +-940,-171,-6,-46,-923,-425 +-142,-442,-817,-998,843,-695 +340,847,-137,-920,-988,-658 +-653,217,-679,-257,651,-719 +-294,365,-41,342,74,-892 +690,-236,-541,494,408,-516 +180,-807,225,790,494,59 +707,605,-246,656,284,271 +65,294,152,824,442,-442 +-321,781,-540,341,316,415 +420,371,-2,545,995,248 +56,-191,-604,971,615,449 +-981,-31,510,592,-390,-362 +-317,-968,913,365,97,508 +832,63,-864,-510,86,202 +-483,456,-636,340,-310,676 +981,-847,751,-508,-962,-31 +-157,99,73,797,63,-172 +220,858,872,924,866,-381 +996,-169,805,321,-164,971 +896,11,-625,-973,-782,76 +578,-280,730,-729,307,-905 +-580,-749,719,-698,967,603 +-821,874,-103,-623,662,-491 +-763,117,661,-644,672,-607 +592,787,-798,-169,-298,690 +296,644,-526,-762,-447,665 +534,-818,852,-120,57,-379 +-986,-549,-329,294,954,258 +-133,352,-660,-77,904,-356 +748,343,215,500,317,-277 +311,7,910,-896,-809,795 +763,-602,-753,313,-352,917 +668,619,-474,-597,-650,650 +-297,563,-701,-987,486,-902 +-461,-740,-657,233,-482,-328 +-446,-250,-986,-458,-629,520 +542,-49,-327,-469,257,-947 +121,-575,-634,-143,-184,521 +30,504,455,-645,-229,-945 +-12,-295,377,764,771,125 +-686,-133,225,-25,-376,-143 +-6,-46,338,270,-405,-872 +-623,-37,582,467,963,898 +-804,869,-477,420,-475,-303 +94,41,-842,-193,-768,720 +-656,-918,415,645,-357,460 +-47,-486,-911,468,-608,-686 +-158,251,419,-394,-655,-895 +272,-695,979,508,-358,959 +-776,650,-918,-467,-690,-534 +-85,-309,-626,167,-366,-429 +-880,-732,-186,-924,970,-875 +517,645,-274,962,-804,544 +721,402,104,640,478,-499 +198,684,-134,-723,-452,-905 +-245,745,239,238,-826,441 +-217,206,-32,462,-981,-895 +-51,989,526,-173,560,-676 +-480,-659,-976,-580,-727,466 +-996,-90,-995,158,-239,642 +302,288,-194,-294,17,924 +-943,969,-326,114,-500,103 +-619,163,339,-880,230,421 +-344,-601,-795,557,565,-779 +590,345,-129,-202,-125,-58 +-777,-195,159,674,775,411 +-939,312,-665,810,121,855 +-971,254,712,815,452,581 +442,-9,327,-750,61,757 +-342,869,869,-160,390,-772 +620,601,565,-169,-69,-183 +-25,924,-817,964,321,-970 +-64,-6,-133,978,825,-379 +601,436,-24,98,-115,940 +-97,502,614,-574,922,513 +-125,262,-946,695,99,-220 +429,-721,719,-694,197,-558 +326,689,-70,-908,-673,338 +-468,-856,-902,-254,-358,305 +-358,530,542,355,-253,-47 +-438,-74,-362,963,988,788 +137,717,467,622,319,-380 +-86,310,-336,851,918,-288 +721,395,646,-53,255,-425 +255,175,912,84,-209,878 +-632,-485,-400,-357,991,-608 +235,-559,992,-297,857,-591 +87,-71,148,130,647,578 +-290,-584,-639,-788,-21,592 +386,984,625,-731,-993,-336 +-538,634,-209,-828,-150,-774 +-754,-387,607,-781,976,-199 +412,-798,-664,295,709,-537 +-412,932,-880,-232,561,852 +-656,-358,-198,-964,-433,-848 +-762,-668,-632,186,-673,-11 +-876,237,-282,-312,-83,682 +403,73,-57,-436,-622,781 +-587,873,798,976,-39,329 +-369,-622,553,-341,817,794 +-108,-616,920,-849,-679,96 +290,-974,234,239,-284,-321 +-22,394,-417,-419,264,58 +-473,-551,69,923,591,-228 +-956,662,-113,851,-581,-794 +-258,-681,413,-471,-637,-817 +-866,926,992,-653,-7,794 +556,-350,602,917,831,-610 +188,245,-906,361,492,174 +-720,384,-818,329,638,-666 +-246,846,890,-325,-59,-850 +-118,-509,620,-762,-256,15 +-787,-536,-452,-338,-399,813 +458,560,525,-311,-608,-419 +494,-811,-825,-127,-812,894 +-801,890,-629,-860,574,925 +-709,-193,-213,138,-410,-403 +861,91,708,-187,5,-222 +789,646,777,154,90,-49 +-267,-830,-114,531,591,-698 +-126,-82,881,-418,82,652 +-894,130,-726,-935,393,-815 +-142,563,654,638,-712,-597 +-759,60,-23,977,100,-765 +-305,595,-570,-809,482,762 +-161,-267,53,963,998,-529 +-300,-57,798,353,703,486 +-990,696,-764,699,-565,719 +-232,-205,566,571,977,369 +740,865,151,-817,-204,-293 +94,445,-768,229,537,-406 +861,620,37,-424,-36,656 +390,-369,952,733,-464,569 +-482,-604,959,554,-705,-626 +-396,-615,-991,108,272,-723 +143,780,535,142,-917,-147 +138,-629,-217,-908,905,115 +915,103,-852,64,-468,-642 +570,734,-785,-268,-326,-759 +738,531,-332,586,-779,24 +870,440,-217,473,-383,415 +-296,-333,-330,-142,-924,950 +118,120,-35,-245,-211,-652 +61,634,153,-243,838,789 +726,-582,210,105,983,537 +-313,-323,758,234,29,848 +-847,-172,-593,733,-56,617 +54,255,-512,156,-575,675 +-873,-956,-148,623,95,200 +700,-370,926,649,-978,157 +-639,-202,719,130,747,222 +194,-33,955,943,505,114 +-226,-790,28,-930,827,783 +-392,-74,-28,714,218,-612 +209,626,-888,-683,-912,495 +487,751,614,933,631,445 +-348,-34,-411,-106,835,321 +-689,872,-29,-800,312,-542 +-52,566,827,570,-862,-77 +471,992,309,-402,389,912 +24,520,-83,-51,555,503 +-265,-317,283,-970,-472,690 +606,526,137,71,-651,150 +217,-518,663,66,-605,-331 +-562,232,-76,-503,205,-323 +842,-521,546,285,625,-186 +997,-927,344,909,-546,974 +-677,419,81,121,-705,771 +719,-379,-944,-797,784,-155 +-378,286,-317,-797,-111,964 +-288,-573,784,80,-532,-646 +-77,407,-248,-797,769,-816 +-24,-637,287,-858,-927,-333 +-902,37,894,-823,141,684 +125,467,-177,-516,686,399 +-321,-542,641,-590,527,-224 +-400,-712,-876,-208,632,-543 +-676,-429,664,-242,-269,922 +-608,-273,-141,930,687,380 +786,-12,498,494,310,326 +-739,-617,606,-960,804,188 +384,-368,-243,-350,-459,31 +-550,397,320,-868,328,-279 +969,-179,853,864,-110,514 +910,793,302,-822,-285,488 +-605,-128,218,-283,-17,-227 +16,324,667,708,750,3 +485,-813,19,585,71,930 +-218,816,-687,-97,-732,-360 +-497,-151,376,-23,3,315 +-412,-989,-610,-813,372,964 +-878,-280,87,381,-311,69 +-609,-90,-731,-679,150,585 +889,27,-162,605,75,-770 +448,617,-988,0,-103,-504 +-800,-537,-69,627,608,-668 +534,686,-664,942,830,920 +-238,775,495,932,-793,497 +-343,958,-914,-514,-691,651 +568,-136,208,359,728,28 +286,912,-794,683,556,-102 +-638,-629,-484,445,-64,-497 +58,505,-801,-110,872,632 +-390,777,353,267,976,369 +-993,515,105,-133,358,-572 +964,996,355,-212,-667,38 +-725,-614,-35,365,132,-196 +237,-536,-416,-302,312,477 +-664,574,-210,224,48,-925 +869,-261,-256,-240,-3,-698 +712,385,32,-34,916,-315 +895,-409,-100,-346,728,-624 +-806,327,-450,889,-781,-939 +-586,-403,698,318,-939,899 +557,-57,-920,659,333,-51 +-441,232,-918,-205,246,1 +783,167,-797,-595,245,-736 +-36,-531,-486,-426,-813,-160 +777,-843,817,313,-228,-572 +735,866,-309,-564,-81,190 +-413,645,101,719,-719,218 +-83,164,767,796,-430,-459 +122,779,-15,-295,-96,-892 +462,379,70,548,834,-312 +-630,-534,124,187,-737,114 +-299,-604,318,-591,936,826 +-879,218,-642,-483,-318,-866 +-691,62,-658,761,-895,-854 +-822,493,687,569,910,-202 +-223,784,304,-5,541,925 +-914,541,737,-662,-662,-195 +-622,615,414,358,881,-878 +339,745,-268,-968,-280,-227 +-364,855,148,-709,-827,472 +-890,-532,-41,664,-612,577 +-702,-859,971,-722,-660,-920 +-539,-605,737,149,973,-802 +800,42,-448,-811,152,511 +-933,377,-110,-105,-374,-937 +-766,152,482,120,-308,390 +-568,775,-292,899,732,890 +-177,-317,-502,-259,328,-511 +612,-696,-574,-660,132,31 +-119,563,-805,-864,179,-672 +425,-627,183,-331,839,318 +-711,-976,-749,152,-916,261 +181,-63,497,211,262,406 +-537,700,-859,-765,-928,77 +892,832,231,-749,-82,613 +816,216,-642,-216,-669,-912 +-6,624,-937,-370,-344,268 +737,-710,-869,983,-324,-274 +565,952,-547,-158,374,-444 +51,-683,645,-845,515,636 +-953,-631,114,-377,-764,-144 +-8,470,-242,-399,-675,-730 +-540,689,-20,47,-607,590 +-329,-710,-779,942,-388,979 +123,829,674,122,203,563 +46,782,396,-33,386,610 +872,-846,-523,-122,-55,-190 +388,-994,-525,974,127,596 +781,-680,796,-34,-959,-62 +-749,173,200,-384,-745,-446 +379,618,136,-250,-224,970 +-58,240,-921,-760,-901,-626 +366,-185,565,-100,515,688 +489,999,-893,-263,-637,816 +838,-496,-316,-513,419,479 +107,676,-15,882,98,-397 +-999,941,-903,-424,670,-325 +171,-979,835,178,169,-984 +-609,-607,378,-681,184,402 +-316,903,-575,-800,224,983 +591,-18,-460,551,-167,918 +-756,405,-117,441,163,-320 +456,24,6,881,-836,-539 +-489,-585,915,651,-892,-382 +-177,-122,73,-711,-386,591 +181,724,530,686,-131,241 +737,288,886,216,233,33 +-548,-386,-749,-153,-85,-982 +-835,227,904,160,-99,25 +-9,-42,-162,728,840,-963 +217,-763,870,771,47,-846 +-595,808,-491,556,337,-900 +-134,281,-724,441,-134,708 +-789,-508,651,-962,661,315 +-839,-923,339,402,41,-487 +300,-790,48,703,-398,-811 +955,-51,462,-685,960,-717 +910,-880,592,-255,-51,-776 +-885,169,-793,368,-565,458 +-905,940,-492,-630,-535,-988 +245,797,763,869,-82,550 +-310,38,-933,-367,-650,824 +-95,32,-83,337,226,990 +-218,-975,-191,-208,-785,-293 +-672,-953,517,-901,-247,465 +681,-148,261,-857,544,-923 +640,341,446,-618,195,769 +384,398,-846,365,671,815 +578,576,-911,907,762,-859 +548,-428,144,-630,-759,-146 +710,-73,-700,983,-97,-889 +-46,898,-973,-362,-817,-717 +151,-81,-125,-900,-478,-154 +483,615,-537,-932,181,-68 +786,-223,518,25,-306,-12 +-422,268,-809,-683,635,468 +983,-734,-694,-608,-110,4 +-786,-196,749,-354,137,-8 +-181,36,668,-200,691,-973 +-629,-838,692,-736,437,-871 +-208,-536,-159,-596,8,197 +-3,370,-686,170,913,-376 +44,-998,-149,-993,-200,512 +-519,136,859,497,536,434 +77,-985,972,-340,-705,-837 +-381,947,250,360,344,322 +-26,131,699,750,707,384 +-914,655,299,193,406,955 +-883,-921,220,595,-546,794 +-599,577,-569,-404,-704,489 +-594,-963,-624,-460,880,-760 +-603,88,-99,681,55,-328 +976,472,139,-453,-531,-860 +192,-290,513,-89,666,432 +417,487,575,293,567,-668 +655,711,-162,449,-980,972 +-505,664,-685,-239,603,-592 +-625,-802,-67,996,384,-636 +365,-593,522,-666,-200,-431 +-868,708,560,-860,-630,-355 +-702,785,-637,-611,-597,960 +-137,-696,-93,-803,408,406 +891,-123,-26,-609,-610,518 +133,-832,-198,555,708,-110 +791,617,-69,487,696,315 +-900,694,-565,517,-269,-416 +914,135,-781,600,-71,-600 +991,-915,-422,-351,-837,313 +-840,-398,-302,21,590,146 +62,-558,-702,-384,-625,831 +-363,-426,-924,-496,792,-908 +73,361,-817,-466,400,922 +-626,-164,-626,860,-524,286 +255,26,-944,809,-606,986 +-457,-256,-103,50,-867,-871 +-223,803,196,480,612,136 +-820,-928,700,780,-977,721 +717,332,53,-933,-128,793 +-602,-648,562,593,890,702 +-469,-875,-527,911,-475,-222 +110,-281,-552,-536,-816,596 +-981,654,413,-981,-75,-95 +-754,-742,-515,894,-220,-344 +795,-52,156,408,-603,76 +474,-157,423,-499,-807,-791 +260,688,40,-52,702,-122 +-584,-517,-390,-881,302,-504 +61,797,665,708,14,668 +366,166,458,-614,564,-983 +72,539,-378,796,381,-824 +-485,201,-588,842,736,379 +-149,-894,-298,705,-303,-406 +660,-935,-580,521,93,633 +-382,-282,-375,-841,-828,171 +-567,743,-100,43,144,122 +-281,-786,-749,-551,296,304 +11,-426,-792,212,857,-175 +594,143,-699,289,315,137 +341,596,-390,107,-631,-804 +-751,-636,-424,-854,193,651 +-145,384,749,675,-786,517 +224,-865,-323,96,-916,258 +-309,403,-388,826,35,-270 +-942,709,222,158,-699,-103 +-589,842,-997,29,-195,-210 +264,426,566,145,-217,623 +217,965,507,-601,-453,507 +-206,307,-982,4,64,-292 +676,-49,-38,-701,550,883 +5,-850,-438,659,745,-773 +933,238,-574,-570,91,-33 +-866,121,-928,358,459,-843 +-568,-631,-352,-580,-349,189 +-737,849,-963,-486,-662,970 +135,334,-967,-71,-365,-792 +789,21,-227,51,990,-275 +240,412,-886,230,591,256 +-609,472,-853,-754,959,661 +401,521,521,314,929,982 +-499,784,-208,71,-302,296 +-557,-948,-553,-526,-864,793 +270,-626,828,44,37,14 +-412,224,617,-593,502,699 +41,-908,81,562,-849,163 +165,917,761,-197,331,-341 +-687,314,799,755,-969,648 +-164,25,578,439,-334,-576 +213,535,874,-177,-551,24 +-689,291,-795,-225,-496,-125 +465,461,558,-118,-568,-909 +567,660,-810,46,-485,878 +-147,606,685,-690,-774,984 +568,-886,-43,854,-738,616 +-800,386,-614,585,764,-226 +-518,23,-225,-732,-79,440 +-173,-291,-689,636,642,-447 +-598,-16,227,410,496,211 +-474,-930,-656,-321,-420,36 +-435,165,-819,555,540,144 +-969,149,828,568,394,648 +65,-848,257,720,-625,-851 +981,899,275,635,465,-877 +80,290,792,760,-191,-321 +-605,-858,594,33,706,593 +585,-472,318,-35,354,-927 +-365,664,803,581,-965,-814 +-427,-238,-480,146,-55,-606 +879,-193,250,-890,336,117 +-226,-322,-286,-765,-836,-218 +-913,564,-667,-698,937,283 +872,-901,810,-623,-52,-709 +473,171,717,38,-429,-644 +225,824,-219,-475,-180,234 +-530,-797,-948,238,851,-623 +85,975,-363,529,598,28 +-799,166,-804,210,-769,851 +-687,-158,885,736,-381,-461 +447,592,928,-514,-515,-661 +-399,-777,-493,80,-544,-78 +-884,631,171,-825,-333,551 +191,268,-577,676,137,-33 +212,-853,709,798,583,-56 +-908,-172,-540,-84,-135,-56 +303,311,406,-360,-240,811 +798,-708,824,59,234,-57 +491,693,-74,585,-85,877 +509,-65,-936,329,-51,722 +-122,858,-52,467,-77,-609 +850,760,547,-495,-953,-952 +-460,-541,890,910,286,724 +-914,843,-579,-983,-387,-460 +989,-171,-877,-326,-899,458 +846,175,-915,540,-1000,-982 +-852,-920,-306,496,530,-18 +338,-991,160,85,-455,-661 +-186,-311,-460,-563,-231,-414 +-932,-302,959,597,793,748 +-366,-402,-788,-279,514,53 +-940,-956,447,-956,211,-285 +564,806,-911,-914,934,754 +575,-858,-277,15,409,-714 +848,462,100,-381,135,242 +330,718,-24,-190,860,-78 +479,458,941,108,-866,-653 +212,980,962,-962,115,841 +-827,-474,-206,881,323,765 +506,-45,-30,-293,524,-133 +832,-173,547,-852,-561,-842 +-397,-661,-708,819,-545,-228 +521,51,-489,852,36,-258 +227,-164,189,465,-987,-882 +-73,-997,641,-995,449,-615 +151,-995,-638,415,257,-400 +-663,-297,-748,537,-734,198 +-585,-401,-81,-782,-80,-105 +99,-21,238,-365,-704,-368 +45,416,849,-211,-371,-1 +-404,-443,795,-406,36,-933 +272,-363,981,-491,-380,77 +713,-342,-366,-849,643,911 +-748,671,-537,813,961,-200 +-194,-909,703,-662,-601,188 +281,500,724,286,267,197 +-832,847,-595,820,-316,637 +520,521,-54,261,923,-10 +4,-808,-682,-258,441,-695 +-793,-107,-969,905,798,446 +-108,-739,-590,69,-855,-365 +380,-623,-930,817,468,713 +759,-849,-236,433,-723,-931 +95,-320,-686,124,-69,-329 +-655,518,-210,-523,284,-866 +144,303,639,70,-171,269 +173,-333,947,-304,55,40 +274,878,-482,-888,-835,375 +-982,-854,-36,-218,-114,-230 +905,-979,488,-485,-479,114 +877,-157,553,-530,-47,-321 +350,664,-881,442,-220,-284 +434,-423,-365,878,-726,584 +535,909,-517,-447,-660,-141 +-966,191,50,353,182,-642 +-785,-634,123,-907,-162,511 +146,-850,-214,814,-704,25 +692,1,521,492,-637,274 +-662,-372,-313,597,983,-647 +-962,-526,68,-549,-819,231 +740,-890,-318,797,-666,948 +-190,-12,-468,-455,948,284 +16,478,-506,-888,628,-154 +272,630,-976,308,433,3 +-169,-391,-132,189,302,-388 +109,-784,474,-167,-265,-31 +-177,-532,283,464,421,-73 +650,635,592,-138,1,-387 +-932,703,-827,-492,-355,686 +586,-311,340,-618,645,-434 +-951,736,647,-127,-303,590 +188,444,903,718,-931,500 +-872,-642,-296,-571,337,241 +23,65,152,125,880,470 +512,823,-42,217,823,-263 +180,-831,-380,886,607,762 +722,443,-149,-216,-115,759 +-19,660,-36,901,923,231 +562,-322,-626,-968,194,-825 +204,-920,938,784,362,150 +-410,-266,-715,559,-672,124 +-198,446,-140,454,-461,-447 +83,-346,830,-493,-759,-382 +-881,601,581,234,-134,-925 +-494,914,-42,899,235,629 +-390,50,956,437,774,-700 +-514,514,44,-512,-576,-313 +63,-688,808,-534,-570,-399 +-726,572,-896,102,-294,-28 +-688,757,401,406,955,-511 +-283,423,-485,480,-767,908 +-541,952,-594,116,-854,451 +-273,-796,236,625,-626,257 +-407,-493,373,826,-309,297 +-750,955,-476,641,-809,713 +8,415,695,226,-111,2 +733,209,152,-920,401,995 +921,-103,-919,66,871,-947 +-907,89,-869,-214,851,-559 +-307,748,524,-755,314,-711 +188,897,-72,-763,482,103 +545,-821,-232,-596,-334,-754 +-217,-788,-820,388,-200,-662 +779,160,-723,-975,-142,-998 +-978,-519,-78,-981,842,904 +-504,-736,-295,21,-472,-482 +391,115,-705,574,652,-446 +813,-988,865,830,-263,487 +194,80,774,-493,-761,-872 +-415,-284,-803,7,-810,670 +-484,-4,881,-872,55,-852 +-379,822,-266,324,-48,748 +-304,-278,406,-60,959,-89 +404,756,577,-643,-332,658 +291,460,125,491,-312,83 +311,-734,-141,582,282,-557 +-450,-661,-981,710,-177,794 +328,264,-787,971,-743,-407 +-622,518,993,-241,-738,229 +273,-826,-254,-917,-710,-111 +809,770,96,368,-818,725 +-488,773,502,-342,534,745 +-28,-414,236,-315,-484,363 +179,-466,-566,713,-683,56 +560,-240,-597,619,916,-940 +893,473,872,-868,-642,-461 +799,489,383,-321,-776,-833 +980,490,-508,764,-512,-426 +917,961,-16,-675,440,559 +-812,212,784,-987,-132,554 +-886,454,747,806,190,231 +910,341,21,-66,708,725 +29,929,-831,-494,-303,389 +-103,492,-271,-174,-515,529 +-292,119,419,788,247,-951 +483,543,-347,-673,664,-549 +-926,-871,-437,337,162,-877 +299,472,-771,5,-88,-643 +-103,525,-725,-998,264,22 +-505,708,550,-545,823,347 +-738,931,59,147,-156,-259 +456,968,-162,889,132,-911 +535,120,968,-517,-864,-541 +24,-395,-593,-766,-565,-332 +834,611,825,-576,280,629 +211,-548,140,-278,-592,929 +-999,-240,-63,-78,793,573 +-573,160,450,987,529,322 +63,353,315,-187,-461,577 +189,-950,-247,656,289,241 +209,-297,397,664,-805,484 +-655,452,435,-556,917,874 +253,-756,262,-888,-778,-214 +793,-451,323,-251,-401,-458 +-396,619,-651,-287,-668,-781 +698,720,-349,742,-807,546 +738,280,680,279,-540,858 +-789,387,530,-36,-551,-491 +162,579,-427,-272,228,710 +689,356,917,-580,729,217 +-115,-638,866,424,-82,-194 +411,-338,-917,172,227,-29 +-612,63,630,-976,-64,-204 +-200,911,583,-571,682,-579 +91,298,396,-183,788,-955 +141,-873,-277,149,-396,916 +321,958,-136,573,541,-777 +797,-909,-469,-877,988,-653 +784,-198,129,883,-203,399 +-68,-810,223,-423,-467,-512 +531,-445,-603,-997,-841,641 +-274,-242,174,261,-636,-158 +-574,494,-796,-798,-798,99 +95,-82,-613,-954,-753,986 +-883,-448,-864,-401,938,-392 +913,930,-542,-988,310,410 +506,-99,43,512,790,-222 +724,31,49,-950,260,-134 +-287,-947,-234,-700,56,588 +-33,782,-144,948,105,-791 +548,-546,-652,-293,881,-520 +691,-91,76,991,-631,742 +-520,-429,-244,-296,724,-48 +778,646,377,50,-188,56 +-895,-507,-898,-165,-674,652 +654,584,-634,177,-349,-620 +114,-980,355,62,182,975 +516,9,-442,-298,274,-579 +-238,262,-431,-896,506,-850 +47,748,846,821,-537,-293 +839,726,593,285,-297,840 +634,-486,468,-304,-887,-567 +-864,914,296,-124,335,233 +88,-253,-523,-956,-554,803 +-587,417,281,-62,-409,-363 +-136,-39,-292,-768,-264,876 +-127,506,-891,-331,-744,-430 +778,584,-750,-129,-479,-94 +-876,-771,-987,-757,180,-641 +-777,-694,411,-87,329,190 +-347,-999,-882,158,-754,232 +-105,918,188,237,-110,-591 +-209,703,-838,77,838,909 +-995,-339,-762,750,860,472 +185,271,-289,173,811,-300 +2,65,-656,-22,36,-139 +765,-210,883,974,961,-905 +-212,295,-615,-840,77,474 +211,-910,-440,703,-11,859 +-559,-4,-196,841,-277,969 +-73,-159,-887,126,978,-371 +-569,633,-423,-33,512,-393 +503,143,-383,-109,-649,-998 +-663,339,-317,-523,-2,596 +690,-380,570,378,-652,132 +72,-744,-930,399,-525,935 +865,-983,115,37,995,826 +594,-621,-872,443,188,-241 +-1000,291,754,234,-435,-869 +-868,901,654,-907,59,181 +-868,-793,-431,596,-446,-564 +900,-944,-680,-796,902,-366 +331,430,943,853,-851,-942 +315,-538,-354,-909,139,721 +170,-884,-225,-818,-808,-657 +-279,-34,-533,-871,-972,552 +691,-986,-800,-950,654,-747 +603,988,899,841,-630,591 +876,-949,809,562,602,-536 +-693,363,-189,495,738,-1000 +-383,431,-633,297,665,959 +-740,686,-207,-803,188,-520 +-820,226,31,-339,10,121 +-312,-844,624,-516,483,621 +-822,-529,69,-278,800,328 +834,-82,-759,420,811,-264 +-960,-240,-921,561,173,46 +-324,909,-790,-814,-2,-785 +976,334,-290,-891,704,-581 +150,-798,689,-823,237,-639 +-551,-320,876,-502,-622,-628 +-136,845,904,595,-702,-261 +-857,-377,-522,-101,-943,-805 +-682,-787,-888,-459,-752,-985 +-571,-81,623,-133,447,643 +-375,-158,72,-387,-324,-696 +-660,-650,340,188,569,526 +727,-218,16,-7,-595,-988 +-966,-684,802,-783,-272,-194 +115,-566,-888,47,712,180 +-237,-69,45,-272,981,-812 +48,897,439,417,50,325 +348,616,180,254,104,-784 +-730,811,-548,612,-736,790 +138,-810,123,930,65,865 +-768,-299,-49,-895,-692,-418 +487,-531,802,-159,-12,634 +808,-179,552,-73,470,717 +720,-644,886,-141,625,144 +-485,-505,-347,-244,-916,66 +600,-565,995,-5,324,227 +-771,-35,904,-482,753,-303 +-701,65,426,-763,-504,-479 +409,733,-823,475,64,718 +865,975,368,893,-413,-433 +812,-597,-970,819,813,624 +193,-642,-381,-560,545,398 +711,28,-316,771,717,-865 +-509,462,809,-136,786,635 +618,-49,484,169,635,547 +-747,685,-882,-496,-332,82 +-501,-851,870,563,290,570 +-279,-829,-509,397,457,816 +-508,80,850,-188,483,-326 +860,-100,360,119,-205,787 +-870,21,-39,-827,-185,932 +826,284,-136,-866,-330,-97 +-944,-82,745,899,-97,365 +929,262,564,632,-115,632 +244,-276,713,330,-897,-214 +-890,-109,664,876,-974,-907 +716,249,816,489,723,141 +-96,-560,-272,45,-70,645 +762,-503,414,-828,-254,-646 +909,-13,903,-422,-344,-10 +658,-486,743,545,50,674 +-241,507,-367,18,-48,-241 +886,-268,884,-762,120,-486 +-412,-528,879,-647,223,-393 +851,810,234,937,-726,797 +-999,942,839,-134,-996,-189 +100,979,-527,-521,378,800 +544,-844,-832,-530,-77,-641 +43,889,31,442,-934,-503 +-330,-370,-309,-439,173,547 +169,945,62,-753,-542,-597 +208,751,-372,-647,-520,70 +765,-840,907,-257,379,918 +334,-135,-689,730,-427,618 +137,-508,66,-695,78,169 +-962,-123,400,-417,151,969 +328,689,666,427,-555,-642 +-907,343,605,-341,-647,582 +-667,-363,-571,818,-265,-399 +525,-938,904,898,725,692 +-176,-802,-858,-9,780,275 +580,170,-740,287,691,-97 +365,557,-375,361,-288,859 +193,737,842,-808,520,282 +-871,65,-799,836,179,-720 +958,-144,744,-789,797,-48 +122,582,662,912,68,757 +595,241,-801,513,388,186 +-103,-677,-259,-731,-281,-857 +921,319,-696,683,-88,-997 +775,200,78,858,648,768 +316,821,-763,68,-290,-741 +564,664,691,504,760,787 +694,-119,973,-385,309,-760 +777,-947,-57,990,74,19 +971,626,-496,-781,-602,-239 +-651,433,11,-339,939,294 +-965,-728,560,569,-708,-247 diff --git a/words.txt b/words.txt new file mode 100644 index 0000000..7177624 --- /dev/null +++ b/words.txt @@ -0,0 +1 @@ +"A","ABILITY","ABLE","ABOUT","ABOVE","ABSENCE","ABSOLUTELY","ACADEMIC","ACCEPT","ACCESS","ACCIDENT","ACCOMPANY","ACCORDING","ACCOUNT","ACHIEVE","ACHIEVEMENT","ACID","ACQUIRE","ACROSS","ACT","ACTION","ACTIVE","ACTIVITY","ACTUAL","ACTUALLY","ADD","ADDITION","ADDITIONAL","ADDRESS","ADMINISTRATION","ADMIT","ADOPT","ADULT","ADVANCE","ADVANTAGE","ADVICE","ADVISE","AFFAIR","AFFECT","AFFORD","AFRAID","AFTER","AFTERNOON","AFTERWARDS","AGAIN","AGAINST","AGE","AGENCY","AGENT","AGO","AGREE","AGREEMENT","AHEAD","AID","AIM","AIR","AIRCRAFT","ALL","ALLOW","ALMOST","ALONE","ALONG","ALREADY","ALRIGHT","ALSO","ALTERNATIVE","ALTHOUGH","ALWAYS","AMONG","AMONGST","AMOUNT","AN","ANALYSIS","ANCIENT","AND","ANIMAL","ANNOUNCE","ANNUAL","ANOTHER","ANSWER","ANY","ANYBODY","ANYONE","ANYTHING","ANYWAY","APART","APPARENT","APPARENTLY","APPEAL","APPEAR","APPEARANCE","APPLICATION","APPLY","APPOINT","APPOINTMENT","APPROACH","APPROPRIATE","APPROVE","AREA","ARGUE","ARGUMENT","ARISE","ARM","ARMY","AROUND","ARRANGE","ARRANGEMENT","ARRIVE","ART","ARTICLE","ARTIST","AS","ASK","ASPECT","ASSEMBLY","ASSESS","ASSESSMENT","ASSET","ASSOCIATE","ASSOCIATION","ASSUME","ASSUMPTION","AT","ATMOSPHERE","ATTACH","ATTACK","ATTEMPT","ATTEND","ATTENTION","ATTITUDE","ATTRACT","ATTRACTIVE","AUDIENCE","AUTHOR","AUTHORITY","AVAILABLE","AVERAGE","AVOID","AWARD","AWARE","AWAY","AYE","BABY","BACK","BACKGROUND","BAD","BAG","BALANCE","BALL","BAND","BANK","BAR","BASE","BASIC","BASIS","BATTLE","BE","BEAR","BEAT","BEAUTIFUL","BECAUSE","BECOME","BED","BEDROOM","BEFORE","BEGIN","BEGINNING","BEHAVIOUR","BEHIND","BELIEF","BELIEVE","BELONG","BELOW","BENEATH","BENEFIT","BESIDE","BEST","BETTER","BETWEEN","BEYOND","BIG","BILL","BIND","BIRD","BIRTH","BIT","BLACK","BLOCK","BLOOD","BLOODY","BLOW","BLUE","BOARD","BOAT","BODY","BONE","BOOK","BORDER","BOTH","BOTTLE","BOTTOM","BOX","BOY","BRAIN","BRANCH","BREAK","BREATH","BRIDGE","BRIEF","BRIGHT","BRING","BROAD","BROTHER","BUDGET","BUILD","BUILDING","BURN","BUS","BUSINESS","BUSY","BUT","BUY","BY","CABINET","CALL","CAMPAIGN","CAN","CANDIDATE","CAPABLE","CAPACITY","CAPITAL","CAR","CARD","CARE","CAREER","CAREFUL","CAREFULLY","CARRY","CASE","CASH","CAT","CATCH","CATEGORY","CAUSE","CELL","CENTRAL","CENTRE","CENTURY","CERTAIN","CERTAINLY","CHAIN","CHAIR","CHAIRMAN","CHALLENGE","CHANCE","CHANGE","CHANNEL","CHAPTER","CHARACTER","CHARACTERISTIC","CHARGE","CHEAP","CHECK","CHEMICAL","CHIEF","CHILD","CHOICE","CHOOSE","CHURCH","CIRCLE","CIRCUMSTANCE","CITIZEN","CITY","CIVIL","CLAIM","CLASS","CLEAN","CLEAR","CLEARLY","CLIENT","CLIMB","CLOSE","CLOSELY","CLOTHES","CLUB","COAL","CODE","COFFEE","COLD","COLLEAGUE","COLLECT","COLLECTION","COLLEGE","COLOUR","COMBINATION","COMBINE","COME","COMMENT","COMMERCIAL","COMMISSION","COMMIT","COMMITMENT","COMMITTEE","COMMON","COMMUNICATION","COMMUNITY","COMPANY","COMPARE","COMPARISON","COMPETITION","COMPLETE","COMPLETELY","COMPLEX","COMPONENT","COMPUTER","CONCENTRATE","CONCENTRATION","CONCEPT","CONCERN","CONCERNED","CONCLUDE","CONCLUSION","CONDITION","CONDUCT","CONFERENCE","CONFIDENCE","CONFIRM","CONFLICT","CONGRESS","CONNECT","CONNECTION","CONSEQUENCE","CONSERVATIVE","CONSIDER","CONSIDERABLE","CONSIDERATION","CONSIST","CONSTANT","CONSTRUCTION","CONSUMER","CONTACT","CONTAIN","CONTENT","CONTEXT","CONTINUE","CONTRACT","CONTRAST","CONTRIBUTE","CONTRIBUTION","CONTROL","CONVENTION","CONVERSATION","COPY","CORNER","CORPORATE","CORRECT","COS","COST","COULD","COUNCIL","COUNT","COUNTRY","COUNTY","COUPLE","COURSE","COURT","COVER","CREATE","CREATION","CREDIT","CRIME","CRIMINAL","CRISIS","CRITERION","CRITICAL","CRITICISM","CROSS","CROWD","CRY","CULTURAL","CULTURE","CUP","CURRENT","CURRENTLY","CURRICULUM","CUSTOMER","CUT","DAMAGE","DANGER","DANGEROUS","DARK","DATA","DATE","DAUGHTER","DAY","DEAD","DEAL","DEATH","DEBATE","DEBT","DECADE","DECIDE","DECISION","DECLARE","DEEP","DEFENCE","DEFENDANT","DEFINE","DEFINITION","DEGREE","DELIVER","DEMAND","DEMOCRATIC","DEMONSTRATE","DENY","DEPARTMENT","DEPEND","DEPUTY","DERIVE","DESCRIBE","DESCRIPTION","DESIGN","DESIRE","DESK","DESPITE","DESTROY","DETAIL","DETAILED","DETERMINE","DEVELOP","DEVELOPMENT","DEVICE","DIE","DIFFERENCE","DIFFERENT","DIFFICULT","DIFFICULTY","DINNER","DIRECT","DIRECTION","DIRECTLY","DIRECTOR","DISAPPEAR","DISCIPLINE","DISCOVER","DISCUSS","DISCUSSION","DISEASE","DISPLAY","DISTANCE","DISTINCTION","DISTRIBUTION","DISTRICT","DIVIDE","DIVISION","DO","DOCTOR","DOCUMENT","DOG","DOMESTIC","DOOR","DOUBLE","DOUBT","DOWN","DRAW","DRAWING","DREAM","DRESS","DRINK","DRIVE","DRIVER","DROP","DRUG","DRY","DUE","DURING","DUTY","EACH","EAR","EARLY","EARN","EARTH","EASILY","EAST","EASY","EAT","ECONOMIC","ECONOMY","EDGE","EDITOR","EDUCATION","EDUCATIONAL","EFFECT","EFFECTIVE","EFFECTIVELY","EFFORT","EGG","EITHER","ELDERLY","ELECTION","ELEMENT","ELSE","ELSEWHERE","EMERGE","EMPHASIS","EMPLOY","EMPLOYEE","EMPLOYER","EMPLOYMENT","EMPTY","ENABLE","ENCOURAGE","END","ENEMY","ENERGY","ENGINE","ENGINEERING","ENJOY","ENOUGH","ENSURE","ENTER","ENTERPRISE","ENTIRE","ENTIRELY","ENTITLE","ENTRY","ENVIRONMENT","ENVIRONMENTAL","EQUAL","EQUALLY","EQUIPMENT","ERROR","ESCAPE","ESPECIALLY","ESSENTIAL","ESTABLISH","ESTABLISHMENT","ESTATE","ESTIMATE","EVEN","EVENING","EVENT","EVENTUALLY","EVER","EVERY","EVERYBODY","EVERYONE","EVERYTHING","EVIDENCE","EXACTLY","EXAMINATION","EXAMINE","EXAMPLE","EXCELLENT","EXCEPT","EXCHANGE","EXECUTIVE","EXERCISE","EXHIBITION","EXIST","EXISTENCE","EXISTING","EXPECT","EXPECTATION","EXPENDITURE","EXPENSE","EXPENSIVE","EXPERIENCE","EXPERIMENT","EXPERT","EXPLAIN","EXPLANATION","EXPLORE","EXPRESS","EXPRESSION","EXTEND","EXTENT","EXTERNAL","EXTRA","EXTREMELY","EYE","FACE","FACILITY","FACT","FACTOR","FACTORY","FAIL","FAILURE","FAIR","FAIRLY","FAITH","FALL","FAMILIAR","FAMILY","FAMOUS","FAR","FARM","FARMER","FASHION","FAST","FATHER","FAVOUR","FEAR","FEATURE","FEE","FEEL","FEELING","FEMALE","FEW","FIELD","FIGHT","FIGURE","FILE","FILL","FILM","FINAL","FINALLY","FINANCE","FINANCIAL","FIND","FINDING","FINE","FINGER","FINISH","FIRE","FIRM","FIRST","FISH","FIT","FIX","FLAT","FLIGHT","FLOOR","FLOW","FLOWER","FLY","FOCUS","FOLLOW","FOLLOWING","FOOD","FOOT","FOOTBALL","FOR","FORCE","FOREIGN","FOREST","FORGET","FORM","FORMAL","FORMER","FORWARD","FOUNDATION","FREE","FREEDOM","FREQUENTLY","FRESH","FRIEND","FROM","FRONT","FRUIT","FUEL","FULL","FULLY","FUNCTION","FUND","FUNNY","FURTHER","FUTURE","GAIN","GAME","GARDEN","GAS","GATE","GATHER","GENERAL","GENERALLY","GENERATE","GENERATION","GENTLEMAN","GET","GIRL","GIVE","GLASS","GO","GOAL","GOD","GOLD","GOOD","GOVERNMENT","GRANT","GREAT","GREEN","GREY","GROUND","GROUP","GROW","GROWING","GROWTH","GUEST","GUIDE","GUN","HAIR","HALF","HALL","HAND","HANDLE","HANG","HAPPEN","HAPPY","HARD","HARDLY","HATE","HAVE","HE","HEAD","HEALTH","HEAR","HEART","HEAT","HEAVY","HELL","HELP","HENCE","HER","HERE","HERSELF","HIDE","HIGH","HIGHLY","HILL","HIM","HIMSELF","HIS","HISTORICAL","HISTORY","HIT","HOLD","HOLE","HOLIDAY","HOME","HOPE","HORSE","HOSPITAL","HOT","HOTEL","HOUR","HOUSE","HOUSEHOLD","HOUSING","HOW","HOWEVER","HUGE","HUMAN","HURT","HUSBAND","I","IDEA","IDENTIFY","IF","IGNORE","ILLUSTRATE","IMAGE","IMAGINE","IMMEDIATE","IMMEDIATELY","IMPACT","IMPLICATION","IMPLY","IMPORTANCE","IMPORTANT","IMPOSE","IMPOSSIBLE","IMPRESSION","IMPROVE","IMPROVEMENT","IN","INCIDENT","INCLUDE","INCLUDING","INCOME","INCREASE","INCREASED","INCREASINGLY","INDEED","INDEPENDENT","INDEX","INDICATE","INDIVIDUAL","INDUSTRIAL","INDUSTRY","INFLUENCE","INFORM","INFORMATION","INITIAL","INITIATIVE","INJURY","INSIDE","INSIST","INSTANCE","INSTEAD","INSTITUTE","INSTITUTION","INSTRUCTION","INSTRUMENT","INSURANCE","INTEND","INTENTION","INTEREST","INTERESTED","INTERESTING","INTERNAL","INTERNATIONAL","INTERPRETATION","INTERVIEW","INTO","INTRODUCE","INTRODUCTION","INVESTIGATE","INVESTIGATION","INVESTMENT","INVITE","INVOLVE","IRON","IS","ISLAND","ISSUE","IT","ITEM","ITS","ITSELF","JOB","JOIN","JOINT","JOURNEY","JUDGE","JUMP","JUST","JUSTICE","KEEP","KEY","KID","KILL","KIND","KING","KITCHEN","KNEE","KNOW","KNOWLEDGE","LABOUR","LACK","LADY","LAND","LANGUAGE","LARGE","LARGELY","LAST","LATE","LATER","LATTER","LAUGH","LAUNCH","LAW","LAWYER","LAY","LEAD","LEADER","LEADERSHIP","LEADING","LEAF","LEAGUE","LEAN","LEARN","LEAST","LEAVE","LEFT","LEG","LEGAL","LEGISLATION","LENGTH","LESS","LET","LETTER","LEVEL","LIABILITY","LIBERAL","LIBRARY","LIE","LIFE","LIFT","LIGHT","LIKE","LIKELY","LIMIT","LIMITED","LINE","LINK","LIP","LIST","LISTEN","LITERATURE","LITTLE","LIVE","LIVING","LOAN","LOCAL","LOCATION","LONG","LOOK","LORD","LOSE","LOSS","LOT","LOVE","LOVELY","LOW","LUNCH","MACHINE","MAGAZINE","MAIN","MAINLY","MAINTAIN","MAJOR","MAJORITY","MAKE","MALE","MAN","MANAGE","MANAGEMENT","MANAGER","MANNER","MANY","MAP","MARK","MARKET","MARRIAGE","MARRIED","MARRY","MASS","MASTER","MATCH","MATERIAL","MATTER","MAY","MAYBE","ME","MEAL","MEAN","MEANING","MEANS","MEANWHILE","MEASURE","MECHANISM","MEDIA","MEDICAL","MEET","MEETING","MEMBER","MEMBERSHIP","MEMORY","MENTAL","MENTION","MERELY","MESSAGE","METAL","METHOD","MIDDLE","MIGHT","MILE","MILITARY","MILK","MIND","MINE","MINISTER","MINISTRY","MINUTE","MISS","MISTAKE","MODEL","MODERN","MODULE","MOMENT","MONEY","MONTH","MORE","MORNING","MOST","MOTHER","MOTION","MOTOR","MOUNTAIN","MOUTH","MOVE","MOVEMENT","MUCH","MURDER","MUSEUM","MUSIC","MUST","MY","MYSELF","NAME","NARROW","NATION","NATIONAL","NATURAL","NATURE","NEAR","NEARLY","NECESSARILY","NECESSARY","NECK","NEED","NEGOTIATION","NEIGHBOUR","NEITHER","NETWORK","NEVER","NEVERTHELESS","NEW","NEWS","NEWSPAPER","NEXT","NICE","NIGHT","NO","NOBODY","NOD","NOISE","NONE","NOR","NORMAL","NORMALLY","NORTH","NORTHERN","NOSE","NOT","NOTE","NOTHING","NOTICE","NOTION","NOW","NUCLEAR","NUMBER","NURSE","OBJECT","OBJECTIVE","OBSERVATION","OBSERVE","OBTAIN","OBVIOUS","OBVIOUSLY","OCCASION","OCCUR","ODD","OF","OFF","OFFENCE","OFFER","OFFICE","OFFICER","OFFICIAL","OFTEN","OIL","OKAY","OLD","ON","ONCE","ONE","ONLY","ONTO","OPEN","OPERATE","OPERATION","OPINION","OPPORTUNITY","OPPOSITION","OPTION","OR","ORDER","ORDINARY","ORGANISATION","ORGANISE","ORGANIZATION","ORIGIN","ORIGINAL","OTHER","OTHERWISE","OUGHT","OUR","OURSELVES","OUT","OUTCOME","OUTPUT","OUTSIDE","OVER","OVERALL","OWN","OWNER","PACKAGE","PAGE","PAIN","PAINT","PAINTING","PAIR","PANEL","PAPER","PARENT","PARK","PARLIAMENT","PART","PARTICULAR","PARTICULARLY","PARTLY","PARTNER","PARTY","PASS","PASSAGE","PAST","PATH","PATIENT","PATTERN","PAY","PAYMENT","PEACE","PENSION","PEOPLE","PER","PERCENT","PERFECT","PERFORM","PERFORMANCE","PERHAPS","PERIOD","PERMANENT","PERSON","PERSONAL","PERSUADE","PHASE","PHONE","PHOTOGRAPH","PHYSICAL","PICK","PICTURE","PIECE","PLACE","PLAN","PLANNING","PLANT","PLASTIC","PLATE","PLAY","PLAYER","PLEASE","PLEASURE","PLENTY","PLUS","POCKET","POINT","POLICE","POLICY","POLITICAL","POLITICS","POOL","POOR","POPULAR","POPULATION","POSITION","POSITIVE","POSSIBILITY","POSSIBLE","POSSIBLY","POST","POTENTIAL","POUND","POWER","POWERFUL","PRACTICAL","PRACTICE","PREFER","PREPARE","PRESENCE","PRESENT","PRESIDENT","PRESS","PRESSURE","PRETTY","PREVENT","PREVIOUS","PREVIOUSLY","PRICE","PRIMARY","PRIME","PRINCIPLE","PRIORITY","PRISON","PRISONER","PRIVATE","PROBABLY","PROBLEM","PROCEDURE","PROCESS","PRODUCE","PRODUCT","PRODUCTION","PROFESSIONAL","PROFIT","PROGRAM","PROGRAMME","PROGRESS","PROJECT","PROMISE","PROMOTE","PROPER","PROPERLY","PROPERTY","PROPORTION","PROPOSE","PROPOSAL","PROSPECT","PROTECT","PROTECTION","PROVE","PROVIDE","PROVIDED","PROVISION","PUB","PUBLIC","PUBLICATION","PUBLISH","PULL","PUPIL","PURPOSE","PUSH","PUT","QUALITY","QUARTER","QUESTION","QUICK","QUICKLY","QUIET","QUITE","RACE","RADIO","RAILWAY","RAIN","RAISE","RANGE","RAPIDLY","RARE","RATE","RATHER","REACH","REACTION","READ","READER","READING","READY","REAL","REALISE","REALITY","REALIZE","REALLY","REASON","REASONABLE","RECALL","RECEIVE","RECENT","RECENTLY","RECOGNISE","RECOGNITION","RECOGNIZE","RECOMMEND","RECORD","RECOVER","RED","REDUCE","REDUCTION","REFER","REFERENCE","REFLECT","REFORM","REFUSE","REGARD","REGION","REGIONAL","REGULAR","REGULATION","REJECT","RELATE","RELATION","RELATIONSHIP","RELATIVE","RELATIVELY","RELEASE","RELEVANT","RELIEF","RELIGION","RELIGIOUS","RELY","REMAIN","REMEMBER","REMIND","REMOVE","REPEAT","REPLACE","REPLY","REPORT","REPRESENT","REPRESENTATION","REPRESENTATIVE","REQUEST","REQUIRE","REQUIREMENT","RESEARCH","RESOURCE","RESPECT","RESPOND","RESPONSE","RESPONSIBILITY","RESPONSIBLE","REST","RESTAURANT","RESULT","RETAIN","RETURN","REVEAL","REVENUE","REVIEW","REVOLUTION","RICH","RIDE","RIGHT","RING","RISE","RISK","RIVER","ROAD","ROCK","ROLE","ROLL","ROOF","ROOM","ROUND","ROUTE","ROW","ROYAL","RULE","RUN","RURAL","SAFE","SAFETY","SALE","SAME","SAMPLE","SATISFY","SAVE","SAY","SCALE","SCENE","SCHEME","SCHOOL","SCIENCE","SCIENTIFIC","SCIENTIST","SCORE","SCREEN","SEA","SEARCH","SEASON","SEAT","SECOND","SECONDARY","SECRETARY","SECTION","SECTOR","SECURE","SECURITY","SEE","SEEK","SEEM","SELECT","SELECTION","SELL","SEND","SENIOR","SENSE","SENTENCE","SEPARATE","SEQUENCE","SERIES","SERIOUS","SERIOUSLY","SERVANT","SERVE","SERVICE","SESSION","SET","SETTLE","SETTLEMENT","SEVERAL","SEVERE","SEX","SEXUAL","SHAKE","SHALL","SHAPE","SHARE","SHE","SHEET","SHIP","SHOE","SHOOT","SHOP","SHORT","SHOT","SHOULD","SHOULDER","SHOUT","SHOW","SHUT","SIDE","SIGHT","SIGN","SIGNAL","SIGNIFICANCE","SIGNIFICANT","SILENCE","SIMILAR","SIMPLE","SIMPLY","SINCE","SING","SINGLE","SIR","SISTER","SIT","SITE","SITUATION","SIZE","SKILL","SKIN","SKY","SLEEP","SLIGHTLY","SLIP","SLOW","SLOWLY","SMALL","SMILE","SO","SOCIAL","SOCIETY","SOFT","SOFTWARE","SOIL","SOLDIER","SOLICITOR","SOLUTION","SOME","SOMEBODY","SOMEONE","SOMETHING","SOMETIMES","SOMEWHAT","SOMEWHERE","SON","SONG","SOON","SORRY","SORT","SOUND","SOURCE","SOUTH","SOUTHERN","SPACE","SPEAK","SPEAKER","SPECIAL","SPECIES","SPECIFIC","SPEECH","SPEED","SPEND","SPIRIT","SPORT","SPOT","SPREAD","SPRING","STAFF","STAGE","STAND","STANDARD","STAR","START","STATE","STATEMENT","STATION","STATUS","STAY","STEAL","STEP","STICK","STILL","STOCK","STONE","STOP","STORE","STORY","STRAIGHT","STRANGE","STRATEGY","STREET","STRENGTH","STRIKE","STRONG","STRONGLY","STRUCTURE","STUDENT","STUDIO","STUDY","STUFF","STYLE","SUBJECT","SUBSTANTIAL","SUCCEED","SUCCESS","SUCCESSFUL","SUCH","SUDDENLY","SUFFER","SUFFICIENT","SUGGEST","SUGGESTION","SUITABLE","SUM","SUMMER","SUN","SUPPLY","SUPPORT","SUPPOSE","SURE","SURELY","SURFACE","SURPRISE","SURROUND","SURVEY","SURVIVE","SWITCH","SYSTEM","TABLE","TAKE","TALK","TALL","TAPE","TARGET","TASK","TAX","TEA","TEACH","TEACHER","TEACHING","TEAM","TEAR","TECHNICAL","TECHNIQUE","TECHNOLOGY","TELEPHONE","TELEVISION","TELL","TEMPERATURE","TEND","TERM","TERMS","TERRIBLE","TEST","TEXT","THAN","THANK","THANKS","THAT","THE","THEATRE","THEIR","THEM","THEME","THEMSELVES","THEN","THEORY","THERE","THEREFORE","THESE","THEY","THIN","THING","THINK","THIS","THOSE","THOUGH","THOUGHT","THREAT","THREATEN","THROUGH","THROUGHOUT","THROW","THUS","TICKET","TIME","TINY","TITLE","TO","TODAY","TOGETHER","TOMORROW","TONE","TONIGHT","TOO","TOOL","TOOTH","TOP","TOTAL","TOTALLY","TOUCH","TOUR","TOWARDS","TOWN","TRACK","TRADE","TRADITION","TRADITIONAL","TRAFFIC","TRAIN","TRAINING","TRANSFER","TRANSPORT","TRAVEL","TREAT","TREATMENT","TREATY","TREE","TREND","TRIAL","TRIP","TROOP","TROUBLE","TRUE","TRUST","TRUTH","TRY","TURN","TWICE","TYPE","TYPICAL","UNABLE","UNDER","UNDERSTAND","UNDERSTANDING","UNDERTAKE","UNEMPLOYMENT","UNFORTUNATELY","UNION","UNIT","UNITED","UNIVERSITY","UNLESS","UNLIKELY","UNTIL","UP","UPON","UPPER","URBAN","US","USE","USED","USEFUL","USER","USUAL","USUALLY","VALUE","VARIATION","VARIETY","VARIOUS","VARY","VAST","VEHICLE","VERSION","VERY","VIA","VICTIM","VICTORY","VIDEO","VIEW","VILLAGE","VIOLENCE","VISION","VISIT","VISITOR","VITAL","VOICE","VOLUME","VOTE","WAGE","WAIT","WALK","WALL","WANT","WAR","WARM","WARN","WASH","WATCH","WATER","WAVE","WAY","WE","WEAK","WEAPON","WEAR","WEATHER","WEEK","WEEKEND","WEIGHT","WELCOME","WELFARE","WELL","WEST","WESTERN","WHAT","WHATEVER","WHEN","WHERE","WHEREAS","WHETHER","WHICH","WHILE","WHILST","WHITE","WHO","WHOLE","WHOM","WHOSE","WHY","WIDE","WIDELY","WIFE","WILD","WILL","WIN","WIND","WINDOW","WINE","WING","WINNER","WINTER","WISH","WITH","WITHDRAW","WITHIN","WITHOUT","WOMAN","WONDER","WONDERFUL","WOOD","WORD","WORK","WORKER","WORKING","WORKS","WORLD","WORRY","WORTH","WOULD","WRITE","WRITER","WRITING","WRONG","YARD","YEAH","YEAR","YES","YESTERDAY","YET","YOU","YOUNG","YOUR","YOURSELF","YOUTH" \ No newline at end of file