> load "tut5data.txt"; Loading "L:\win\Magma\MATH2068\tut5data.txt" > sample[1..500]; CALLMEISHMAELSOMEYEARSAGONEVERMINDHOWLONGPRECISELYHAVINGLITTLEORNOMONEYINMYPURSEANDNOTHIN\ GPARTICULARTOINTERESTMEONSHOREITHOUGHTIWOULDSAILABOUTALITTLEANDSEETHEWATERYPARTOFTHEWORLD\ ITISAWAYIHAVEOFDRIVINGOFFTHESPLEENANDREGULATINGTHECIRCULATIONWHENEVERIFINDMYSELFGROWINGGR\ IMABOUTTHEMOUTHWHENEVERITISADAMPDRIZZLYNOVEMBERINMYSOULWHENEVERIFINDMYSELFINVOLUNTARILYPA\ USINGBEFORECOFFINWAREHOUSESANDBRINGINGUPTHEREAROFEVERYFUNERALIMEETANDESPECIALLYWHENEVERMY\ HYPOSGETSUCHANUPPERHANDOFMETHATITREQUIRESASTRONGMORALPR > /* From "Moby Dick" */ > xx:=Decimation(sample,[4,5],10); > xx[1..5]; [ LM, SO, GO, DH, EC ] > /* CAL LM EISHMAEL SO MEYEARSA GO NEVERMIN DH OWLONGPR EC ISELY ... > It is indeed the 4th and 5th letters in every 10 letter block. */ > CoincidenceDiscriminant(xx); 0.00519100666272368070892518775346 > for i:=1 to 9 do for> CoincidenceDiscriminant(Decimation(sample,[i,i+1],10)); for> end for; 0.00497306970713979323424507364947 0.00478331197029611126132357711363 0.00457331086035949270350264004616 0.00519100666272368070892518775346 0.00452499258326155858395673891974 0.00481807288603744908746348736550 0.00455629476612929307133929564093 0.00494218563323670109872225880178 0.00571627640108725471841324842007 > /* All roughly similar */ > for i:=1 to 12 do for> CoincidenceDiscriminant(Decimation(sample,[i,i+1],13)); for> end for; 0.00613820960419088861198904619361 0.00618196510331823146559924314625 0.00513470030056115776527603613601 0.00479927263452819688765535357904 0.00497190145350372780068200933602 0.00534764849444631490933831801694 0.00502157885581868366709287635277 0.00477205169406470414990268464825 0.00439370615704840725704104871172 0.00508583965038222436426732214060 0.00498333014079366713936281355589 0.00608426957449226613575362959847 > /* Again, all roughly similar */ > for i:=1 to 8 do for> CoincidenceDiscriminant(Decimation(sample,[i,i+2],10)); for> end for; 0.00184429403220476105230941563096 0.00238839319910938769956533912590 0.00181158536351055685324536740277 0.00198450521688523597512290917808 0.00182584108481393803980968675547 0.00228522863485580398088565926614 0.00178701015231772427572696192166 0.00188166000937953897656431686116 > /* All similar and significantly less than you get for adjacent pairs */ > for i:=1 to 7 do for> CoincidenceDiscriminant(Decimation(sample,[i,i+3],10)); for> end for; 0.00131415776274171423245973832055 0.00139272527672917983678824350611 0.00151405981451297408201859639836 0.00157569838039265981194616319519 0.00145824732584193847138960081983 0.00118297678733040158973935504147 0.00139000686321946944044835312634 > /* So adjacent-but-one gives higher values than adjacent-but-two. > But the main point is that you get much higher values from > adjacent pairs */ > ct[1..70]; OWMUCHNISBTAIWEKNINLNSRHAFIEBUOORSYHTARTVNMEYCRDEWAISEENEVWERSIPEWADDL > SortedFreqDist(ct); [ <0.120860554277896881103515625000, E>, <0.0870691593736410140991210937500, T>, <0.0822257269173860549926757812500, A>, <0.0710745668038725852966308593750, O>, <0.0689344443380832672119140625000, S>, <0.0681459791958332061767578125000, N>, <0.0660058567300438880920410156250, R>, <0.0642036497592926025390625000000, I>, <0.0577832846902310848236083984375, H>, <0.0456183827482163906097412109375, D>, <0.0422392431646585464477539062500, L>, <0.0293985132593661546707153320312, U>, <0.0251182699576020240783691406250, P>, <0.0245550798717886209487915039062, W>, <0.0243298041168600320816040039062, C>, <0.0221896823495626449584960937500, Y>, <0.0219644063618034124374389648438, M>, <0.0212885783985257148742675781250, F>, <0.0199369227048009634017944335938, G>, <0.0138544717337936162948608398438, B>, <0.0105879702605307102203369140625, K>, <0.00889840058516710996627807617188, V>, <0.00180220769834704697132110595703, J>, <0.00101374182850122451782226562500, Q>, <0.000563189911190420389175415039062, X>, <0.000337913945259060710668563842773, Z> ] > /* These frequencies are typical of standard text. This suggests that a > transposition cipher may have been used. */ > CheckPeriod(ct,[2..15],0.008,0.005); Checking for transposition cipher period 2 Checking for transposition cipher period 3 Checking for transposition cipher period 4 Checking for transposition cipher period 5 Checking for transposition cipher period 6 Checking for transposition cipher period 7 Checking for transposition cipher period 8 Checking for transposition cipher period 9 Checking for transposition cipher period 10 Checking for transposition cipher period 11 Checking for transposition cipher period 12 Checking for transposition cipher period 13 Checking for transposition cipher period 14 Checking for transposition cipher period 15 Done > /* Each successive value takes longer to check than the one before because > a larger potential period means more CI's and CD's that have to be checked. > Sadly, no possibilities have been found yet. */ > CheckPeriod(ct,[16..25],0.008,0.005); Checking for transposition cipher period 16 Checking for transposition cipher period 17 Checking for transposition cipher period 18 Checking for transposition cipher period 19 Checking for transposition cipher period 20 Checking for transposition cipher period 21 Checking for transposition cipher period 22 Checking for transposition cipher period 23 23 is possible Checking for transposition cipher period 24 Checking for transposition cipher period 25 Done > /* We can be confident that the period is 23. But, just to be on the safe > side, let us check a few more values. */ > CheckPeriod(ct,[26..30],0.008,0.005); Checking for transposition cipher period 26 Checking for transposition cipher period 27 Checking for transposition cipher period 28 Checking for transposition cipher period 29 Checking for transposition cipher period 30 Done > /* Assuming the period is 23, we now find which pairs of letters in > each 23 letter block of ciphertext want to be adjacent to one another. */ > FindAdjacencies(ct,23,0.006,0.005); 1 2 0.00781912388130004710315591144607 0.00674384480677033257197414486961 1 11 0.00691743489670950810847183904179 0.00640170527139571277840487300084 2 1 0.00781912388130004710315591144607 0.00674384480677033256985656250147 2 19 0.00746921472310073346342776394590 0.00629016899152268777118245253986 3 12 0.00819594912859161563824776260009 0.00705324838337106455186641400419 3 15 0.00952829553865823295875109346612 0.00832263593751972202389557194818 4 17 0.00789987214857681178924702240764 0.00683472234942952851067553602347 4 23 0.00740192450037009622501850481125 0.00670097686848392428201961492328 5 13 0.00699818316398627279456295000337 0.00584098186374153732165000370291 5 16 0.00788641410403068434156517058071 0.00695694142438929819600485935857 6 12 0.00651369356032568467801628423390 0.00611079608896740290038278775771 7 8 0.00644640333759504743960702509925 0.00547222083688491660036213020540 7 11 0.00862660655406769396406702106184 0.00810023365384044139103696070478 8 7 0.00644640333759504743960702509925 0.00547222083688491659993861373178 8 20 0.00663481596124083170715295067627 0.00567852334169483026646513355168 9 18 0.00784603997039230199851961509993 0.00660514955328972246953944062048 9 19 0.00764416930220039028329183769598 0.00695512122846819488013365723883 10 21 0.00756342103492362559720072673441 0.00639269996829327535405355312920 10 23 0.00748267276764686091110961577283 0.00643141345623788209423486185966 11 1 0.00691743489670950810847183904179 0.00640170527139571278179300478986 11 7 0.00862660655406769396406702106184 0.00810023365384044139018992775753 12 3 0.00819594912859161563824776260009 0.00705324838337106455525454579321 12 6 0.00651369356032568467801628423390 0.00611079608896740289530059007418 13 5 0.00699818316398627279456295000337 0.00584098186374153731910890486115 13 14 0.00662135791669470425947109884934 0.00583635479669996800125903097835 14 13 0.00662135791669470425947109884934 0.00583635479669996800252958039923 14 22 0.00833052957405289011506628086939 0.00726395254786783557901592620586 15 3 0.00952829553865823295875109346612 0.00832263593751972202050744015916 15 20 0.00810174281676872350447479981159 0.00714979732642747373459269147333 16 5 0.00788641410403068434156517058071 0.00695694142438929819642837583220 17 4 0.00789987214857681178924702240764 0.00683472234942952851491070075975 17 22 0.00853240024224480183029405827334 0.00791003002699120278967697848446 18 9 0.00784603997039230199851961509993 0.00660514955328972246657482530509 18 21 0.00759033712401588049256443038827 0.00663358493433198346426267390935 19 2 0.00746921472310073346342776394590 0.00629016899152268776864135369810 19 9 0.00764416930220039028329183769598 0.00695512122846819487971014076520 20 8 0.00663481596124083170715295067627 0.00567852334169483026646513355168 20 15 0.00810174281676872350447479981159 0.00714979732642747373247510910520 21 10 0.00756342103492362559720072673441 0.00639269996829327535024190486655 21 18 0.00759033712401588049256443038827 0.00663358493433198346468619038298 22 14 0.00833052957405289011506628086939 0.00726395254786783557647482736409 22 17 0.00853240024224480183029405827334 0.00791003002699120279137104437897 23 4 0.00740192450037009622501850481125 0.00670097686848392428286664787053 23 10 0.00748267276764686091110961577283 0.00643141345623788209465837833329 > /* The first line of this output tells us that the 1st and 2nd letter > in each 23 letter block were probably adjacent letters before the > block was reordered. The second line tells us that the 1st and 11th > letters in each block were probably adjacent before the block was > reordered. We can express this briefly by saying that 1 wants to > be next to 2 and 1 also wants to be next to 11. Similarly 2 wants to > be next to 1 and also next to 19, and so on. Our task is to write down > the numbers from 1 to 23 in some order so that the numbers that want to be > next to each other are next to each other. For example, to make 1 next > to 2 and next to 11 our sequence will have to include either ... 11,1,2, ... > or ... 2,1,11, ... . And then since we also want 2 next to 19 we will > have to have either ... 11,1,2,19, ... or ...19,2,1,11, ... . > Continue on in this way. We see that 11 wants to be next to 7 as well > as to 1; so we need either ... 7,11,1,2,19,... or ...19,2,1,11,7,... . > And 7 wants to be next to 8 as well as 11: > ... 8,7,11,1,2,19, ... or its reverse. > And 8 wants to be next to 20 as well as 7: > ... 20,8,7,11,1,2,19, ... or its reverse. > Continuing like this we gat as far as > ... 6,12,3,15,20,8,7,11,1,2,19, ... (or its reverse) > and then we are stuck, because 6 doesn't seem to want to be next to anything > but 12. This could just be due to some statistical anomaly of the text we > are analyzing, but it is more likely to be because the 6th letter of each > ciphertext block was originally either the first or the last letter of the > plaintext block, and thus genuinely only wants to be next to one other thing > in the block. So we should now work on the other end: 19 want to be next to 9 > as well as 2, 9 wants to be next to 18 as well as 19, and so on. We eventually > get to 6,12,3,15,20,8,7,11,1,2,19,9,18,21,10,23,4,17,22,14,13,5,16 before we > are again stuck: 16 only wants to be next to 5. But this is just as well because > we have now got all 23 numbers in our sequence. So perhaps we have found the key! > Of course, there are two possibilities: the above sequence or its reverse. > ZZ:=TranspositionCryptosystem(23); > dk:=[16,5,13,14,22,17,4,23,10,21,18,9,19,2,1,11,7,8,20,15,3,12,6]; > Enciphering(ZZ!dk,Encoding(ZZ,ct)); KCIWSNURBNISNWOTNILEMAHREHTYTICREVONAHSUOMAFYBSAWEDIWDNAPEEDRESEWREVINREHTUOSEHTNOLLAWSTI\ SEHNUOYTOPSRETNASAELPAEDISMSNIGEBNEHWTUBDEIPSREVEDERDNUHEVIFTSOMLAYTTIDYOFSNWOTEHTEESOTOG\ ASRAEYSAWNIMREVMORFOSREFFUSKLDEHTTHGUOFYEHTSTARYTIPABDNASTACEHTDELLIKDNASGOSELDARCEHTNISE\ IBABEHTTIHTFOTUOSESEEHCEHTETADNARFPUOSEHTDEKCILDNASTAVEILPSSELDALNWOSKOOCEHTMORPSDETLASFO\ SGEKEHTNEPOTSSNEMEDISNISTSENEDAMSTADELIOPSNEVEDNASTAHYADNUNINWORDYBSTAHCSNEMOWEHTEIRHSHTI\ WGNIKAEPSRIEHTGYTFIFNIGNIKAEUQSDNAGNIKSTALFDNASPRAHSTNEREFFIDTYDOBANIELPOEPEHTTSALTANIKCO\ LFEMACLLAHNWOTEHTOAMRUOYEHTDEIRCRAELCSITGOCRUOROFSADNAYDDONASROYNIHTOTGNIKCOHSNOITAROPRMR\ EHTIWDENILSNWOGYUBEWKOWROTNACTAHTSTLODROFENIROTTSEBSTAHWENIMRETEDTNBEPOHUOYNIMREVRUOFOSUD\ ITESEBODNADLOERUOYESUACEBORCIVICYRRUFEHTNIDNIFOUOYEVIGSRISPUESUORESAEEHTDNIFOTGNIKCARASNI\ ARBRRUSROGNIKCALEREWYDEMEREIKCAPUOYDNESLLEWETAFSAEPROCDNAROYAMEHTSIHTTAGNTHGIMAHTIWDEKAUQ\ NOITAROEHTRUOHNANOITANRETSNOCYTHTGNELTALICNUOCNIETASYAROFECNELISEKORBROYAMEHESNWOGENIMREY\ MDIREDLIUGIECNEHELIMAEREWIHSIWILLBSENOKCARENODIBOTYSAESTHCADAEHROOPYMERUSMINIAROSTIDEHCTA\ RCSEVINIAGASEAPARTAROFHONIAVNILLADNAHTDIASEHSATSUJPARTAPARTAHCEHTTAPAHDLUOHSTAHWSILBPATEL\ TNEGATUBROODREBMSTAHWROYAMEHTDEIRCSUSSEANOITAROPROCEHTHTIWTAHTUOHTELTTILGNIKOOLTASEHSETHG\ IRBRONTAFSUORDNOWHGAHTRETSIOMRONEYESIHSAWRASRETSYODENEPOGNOLOOTANRGHCNUAPSIHNOONTANEHWEVU\ TFOETALPAROFSUONITUMWENOSUONITULGDNANEERGELTREHTNOSEOHSFOGNIPARCSAYLDNUOSEHTEKILGNIHTYNAT\ AMTIPOGTRAEHYMSEKAMTARAFODEIRCROYAMEHTNIEMOCTAPAOCDIDNIDNAREGGIBGNIKOOLSIHERUGIFTSEGNARTS\ EHTEMOTLEEHMORFTAOCGNOLREEUQHDNAWOLLEYFOFLAHSAWDAEHSAWFLESMIHEHDNADERFOFLAULBPRAHSHTIWNIH\ TDNALLATGILDNANIPAEKILHCAESEYEEKSYHTRAWSTEYRIAHESOOLTHDRAEBRONKEEHCNOTFUTONNIELIMSEREHWSP\ ILTUBNIHCNOONSAWEREHTNIDNATUOTNEWSNANIKDNAHTIKSIHGNISSEUGRIMDAHGUONEDLUOCYDOBONDTNIAUQSIH\ DNANAMLLATEHTERGYMSASTIENOHTOUQERITTAAPUGNITRATSERISDNARGTAEDAHENOTSMOODFOPMURTEHTTIAPSIH\ MORFYAWSIHTDEKLAWDECNAVDAEHENOTSBMOTDETNELPDNAELBATLICNUOCEHTOTAMIEHDIASSRUONOHRUOYESARAH\ CTERCESAFOSNAEMYBELBIVILSERUTAERCLLAWARDOTMEERCTAHTNUSEHTHTAENEBGNMRETFANURROYLFROMIWSROP\ IHCIDNAWASREVENUOYSAOSERUTAERCNOMRAHCYMESUYLFEOMEHTMRAHELPOEPODTAHTSEEPIVDNATWENDNADAOTDN\ AELDEIPEHTEMLLACELPOEPDNARDECITONYEHTEREHDNAREPIPDERFOFRACSAKCENSIHDNUORWHCTAMOTEPIRTSWOL\ LEYDNAEMASFLESEHTFOTAOCSIHHTIDNESFRACSEHTTADNAEUQEHCTSREGNIFSIHDNAEPIPAGNUHYARTSREVEEREWD\ ECITONYEHALPEBOTTNEITAPMIFISAGNITIWOLSAEPIPSIHTNOPUGNIYOSERUTSEVSIHREVODELGNADROOPEHDIAST\ EYDELGNAFDLOERFIYRATRATNIMAISAREPIPIHMORFENUJTSALMAHCEHTDEESAEISTANGFOSMRAWSEGUHSTSNOMAFO\ MAZINEHTAISANIDASTABERIPMAVFODOORBSUORWEBNIARBRUOYTAHWROFSADNNWOTRUOYDIRNACIFISREDLIOHTAE\ MEVIGUOYLLIWSTARFOHTYTFIFENOSREDLIUGDNASUNOITAMALCXEEHTSAWDNASUODNAROYAMDEHSINOTSAEHTFOEE\ RTSEHTOTNINOITAROPROCGNILIMSDEPPETSREPIPEHTTEHFISAELIMSELTTILATSRIFSIHNITPELSCIGAMTAHWWEN\ KILNEHTELIHWEHTEPIPTEIUQHTWOLBOTTPEDALACISUMAEKADELKNIRWEHSPILSIHEPIPEEPRAHSSIHEULBDNANEE\ RGDNFELDNACAEKILDELKNIWTSEYELKNIRPSSITLASEREHWEMALSETONLLIRHSEERHTEREDNADADRAEHUOYDERETTU\ EPIPEHTEHTDNADERETTUMYMRANAFISILBMURGAOTWERGGNIRETTUMOTWERGGNILBMURGEHTDNAGNFOTUODNAGNILB\ MURYTHGIMAMUTEMACSTAREHTSESUOHEHTSTARLLAMSSTARTAERGGNILBNWORBSTARYNWARBSTARNAELATSTARYERG\ STARKCALBSTARSREDDOLPDLOEVARGSTARYNWSREHTAFSREKSIRFGNUOYYAGCOCSNISUOCSELCNUSREHTOMIHWGNIK\ CIRPDNASLIATGNIKDDNASNETYBSEILIMAFSREKSSUHSRETSISSREHTORBSNEZOIPEHTDEWOLLOFSEVIWSDNABRTSM\ ORFSEVILRIEHTROFREPNAVDADEPIPEHTEERTSOTTEEFYEHTPETSROFPETSDNAGNICYEHTLITNUGNICNADDEWOLLOR\ EHWRESEWREVIREHTOTEMACEHSIREPDNADEGNULPLLANIEUILUJSATUOTSOHWENOEVASDVILDNASSORCAMAWSRASEA\ CSRCSUNAMEHTEHSAYRRACOTDEDNALTAROTDEHSIREHCEHTPIWHCIHWYRATNEMMOCSIHEMOHSETONLLIRHSTSRIFEH\ TTASASADNUOSADRAEHIEPIPEHTFOITTUPDNAEPIRTGNIPARCSFOTNIEPIRSUORDNOWSELPPAGNMADNAEPIRGSSSER\ PREDICAOAOBBUTELKCIPFOYAWAGNIVONOCFORAJAGNIVAELADNASDRIWARDADNASDRAOBPUCEVRESALFLIONIARTF\ OSKROCEHTGNSPOOHEHTGNIKAERBADNASKSEMEESTIDNASKSACRETTUBFOHTRAFRETEEWSECIOVAFISADBSIYRETLA\ SPYBROPRAHYBNARSTARHOTUODELLACDEHTAEROTNWORGSIDLROWEHTECIOJECNUMOSYRETLASYRDTSAVENOCNUNRU\ OYEKATNOHCNURCNOHNNIDREPPUSTSAFKAERBNOEHLUBASATSUJDNANOEHCNULREYDAERLLANOEHCNUPRAGUSYKNOH\ SNUSTAERGAEKILDEVATSEBHCNINAECRACSSUOIROLGETITHGUOHTEMSATSUJEMEROFEHTDNUOFIEMEROBEMOCDIAS\ OHSUOYEMREOGNILLORRESEWPNILEMAHEHTDRAEHEVAHDLULITSLLEBEHTGNIGNIRELPOEOGELPEETSEHTDEKCORYE\ HTLGNOLTEGDNAROYAMEHTDEIRCDNASTSENEHTTUOEKOPSELOPWTLUSNOCSELOHEHTPUKCOLBREDLIUBDNASRETNEP\ RACHTIVETONNWOTRUONIEVAELDNASUSNEHWSTAREHTFOECARTANEPIPEHTFOECAFEHTPUYLNEDDCALPTEKRAMEHTN\ IDEKREPREMESAELPUOYFITSRIFAHTIWESUOHTASREDLIUGDNASUOHTYKOOLROYAMEHTSREDLIUGDNAITAROPROCEH\ TDIDOSEULBDEMSRENNIDLICNUOCROFOOTNOMTERALCHTIWCOVAHERAREDADNAKCOHEVARGEDNIVELLESONELPERDL\ UOWYENOMEHTFLAHBTSEGGIBSRALLECRIEHTHSISIHTYAPOTHSINEHRHTIWTTUIWWOLLEFGNIREDNAWAOTMUSLEYDN\ ADERFOTAOCYSPYGAHTWROYAMEHTHTOUQEDISEBWOLNISUBRUOKNIWGNIWONKAHTIRBSREVIREHTTAENODSAWSSEVE\ HTSEYERUOHTIWWASEWKNIACDAEDSTAHWDNAKNISNIMREIRFOSKNIHTIEFILOTEMOCTNRHSOTSKLOFEHTTONEREWDN\ EYGNIVIGFOYTUDEHTMORFKNIADNAKNIRDROFGNIHTEMOSUOUOYNITUPOTYENOMFORETTAMREDLIUGEHTROFSATUBE\ KOPRUOYSAMEHTFOEKOPSEWTAHWSEBEKOJNISAWWONKLLEWYREVSUEDAMEVAHSESSOLRUOEDISREDLIUGDNASUOHTA\ YTFIRHTSREPIPEHTYTFIFEKATEMOCSIRTONDEIRCEHDNALLEFECAFEVIEDISEBTIAWTNACIGNILFRENNIDYBTISIV\ OTDESIMORPPEHTTPECCADNATADGABEMITATTOPSKOOCDAEHEHTFOEMIRGNIVAHROFNIHCIRSEHLLAEGONEHCTIKSP\ ILACEHTNITFELVRUSONSNOIPROCSFOTSENAFRABONDEVORPIMIHHTIWROVIHTTNODUOYHTIWREVIRDNIAGLOFDNAR\ EVITSAETABLLIKNIYAMNOISSAPANIEMTUPOHWSKHSAFREHTONAOTEPIPEMDNIFTEYDROYAMEHTDEIRCWOHNOITESR\ OWGNIEBKOORBLLIKNIHDETLUSNIKOOCANAHTDETAERIPELDIHTIWDLABIRYZALAYBTUOYDLABEIPERUTSEVDNAEPO\ WRUOYODWOLLEFSUNETAERHLITEREHTEPIPRUOYWOLBTSRPETSEHEROMECNOTSRUBUOYLIHOTDNATEERTSEHTOTNID\ EPIPGNOLSIHDIALNIAGASPILSAENACTHGIARTSHTOOMSFOEPUSSETONEERHTWELBEHEREDNUMTEYSASETONTFOSTE\ EWSHCEVAGREVENGNINNUCSNAICISAWEREHTRIADERUTPARNEEHTKILDEMEESTAHTGNILTSURASSDWORCYRREMFOGN\ ILTSUBAEUHDNAGNIHCTIPTAGNILTSUJTTAPEREWTEEFLLAMSGNILTSRETTALCSEOHSNEDOOWGNIREAGNIPPALCSDN\ AHELTTILGNIIRETTAHCSEUGNOTELTTILDNAYMRAFANISLWOFEKILDNAGNNIRETTACSSIYELRABNEHWDRNNURNERDL\ IHCEHTEMACTUOGGDNASYOBELTTILEHTLLAGNILFDNASKEEHCYSORHTIWSLRIYEGNILKRAPSDNASLRUCNEXAIRTSLR\ AEPEKILHTEETDNASERREMNARGNIPPIKSDNAGNIPPSUMLUFREDNOWEHTRETFAYLITHGUALDNAGNITUOHSHTIWCIEHT\ DNABMUDSAWROYAMEHTREREWYEHTFISADOOTSLICNUOCOOWFOSKCOLBOTNIDEGNAHCEYRCROPETSAEVOMOTELBANUD\ IKSYLIRREMNERDLIHCEHTOTLLOFYLNODLUOCDNAYBGNIPPCSUOYOJTAHTEYEEHTHTIWWOHTUBKCABSREPIPEHTTAD\ WORAKCAREHTNOSAWROYAMEHTWOOBSLICNUOCDEHCTERWEHTDNENRUTREPIPEHTSATAEBSMOSEHWOTTEERTSHGIHEH\ TMORFDETAWSTIDELLORRESEWEHTERSRIEHTFOYAWEHTNITHGIRSRHREVEWOHSRETHGUADDNASNOATSEWOTHTUOSMO\ RFDENRUTETSSIHLLIHGREBLEPPOKOTDNMIHRETFADNADESSERDDASPETAERGDESSERPNERDLIHCEHTHTSAERBYREV\ ENIYOJEHTSAWTHGIMTAHTSSORCNACREVENEIPEHTTELOTDECROFSEHPOTYUOEESLLAHSEWDNAPORDGNIPHTSAOLNE\ HWPOTSNERDLIHCRISSNIATNUOMEHTDEHCAERYEDENEPOLATROPSUORDNOWAEDEDDUSSAWNREVACAFISAEDIWAREPI\ PEHTDNADEWOLLOHYLNOFNERDLIHCEHTDNADECNAVDTNIEREWLLANEHWDNADEWOLLHTNIROODEHTTSALYREVEHTOID\ TSAFTUHSEDISNIATNUOMEDNAEMALSAWENOONLLAYASIDFOELOHWEHTECNADTONDLUOCFISRAEYRETFANIDNAYAWEH\ TSSENDASSIHEMALBDLUOWUOYNILLUDSTIYASOTDESUSAWEHSETAMYALPYMECNISNWOTRUOEBMITAHTTEGROFTNACI\ TFELGISTNASAELPEHTLLAFOTFERREPIPEHTHCIHWEESYEHTSTHUDELEHROFEMDESIMORPOSLAIOJDNALSUOYOJAOT\ DIASEHSNAHTATSUJDNANWOTEHTGNINRFDNADEHSUGSRETAWEREHWDPSREWOLFDNAWERGSEERTTIUEVEDNAEUHRERI\ AFAHTROFTUWENDNAEGNARTSSAWGNIHTYRRETHGIRBEREWSWORRAPSEHTIEHTDNAEREHSKCOCAEPNAHTEEDWOLLAFR\ UONARTUOSGODREHTTSOLDAHSEEBYENOHDNAROBEREWSESROHDNASGNITSRISUJDNASGNIWSELGAEHTIWNREMALYMD\ ERUSSAEMACEBISATERUCYLIDEEPSEBDLUOWTOOFOTSIDNADEPPOTSCISUMEHTDUOFLESYMDNUOFDNALLITSDOGAEN\ OLATFELLLIHEHTEDISTIPMILWONOGOTLLIWYMTSNIAORAEHREVENDNAEROFEBSAGNALASALAEROMYRTNUOCTAHTFT\ NIEMACEREHTNILEMAHROFSTXETAETAPSREHGRUBAYNAMOTAGSNEVAEHTAHTSYASHCIHWRYSAESATAHCIREHTOTSEP\ OESEKATEYESELDEENEHTSAETASAETNESROYAMEHTNILEMACAFFOOTHTUOSDNAHTRONTSEWTHTUOMFODROWYBREPIP\ EHTREFOTTOLSNEMSAWTIREVEREHWIHOTDLOGDNAREVLISMIHDNIYLNODEHFITNETNOCSTRAEHSRBDNATNEWEHYAWE\ HTNRUTERMIHDNIHEBNERDLIHCEHTGNITSOLASAWTWASYEHTNEHWTUBNADDNAREPIPDNARUOVAEDNEYEHTREVEROFE\ NOGEREWSRECNSREYWALTAHTEERCEDAEDAMCERRIEHTKNIHTDLUOHSREVEEHTRETFAFIYLUDDETADSDROEHTRAEYDN\ AHTNOMEHTFOYADEPPALLEWSATONDIDSDROWESPAHTAHWRETFAGNOLOSDNARACESYTNEWTEHTNOEREHDENEPERDNUH\ NEETRIHTYLUJFODNOTEBEHTDNAXISYTNEVESDNADCALPEHTXIFOTYROMEMNIRETRTERTSALSNERDLIHCEHTFOEPDE\ IPEHTTIDELLACYEHTTAEPENOYNAEREHWTEERTSSREPISSAWROBATROEPIPNOGNIYALIHESOLOTERUTUFEHTROFERU\ HYEHTDEREFFUSRONRUOBALSWKCOHSOTNREVATROYRLETSONMELOSOSTEERTSAHTRIMHTIHTFOECALPEHTETISOPPO\ TUBROTSEHTETORWYEHTNREVACETAERGEHTNODNANMULOCANOYSEHTDETNIAPWODNIWHCRUHCIAUQCADLROWEHTEKA\ MOTEMAREWNERDLIHCRIEHTWOHDETNTSTIEREHTDNAYAWANELOTSEUMIDNAYADYREVSIHTOTSDNAARTNITAHTYASOT\ TIMOTONTSFOEBIRTASEREHTAINAVLYSNTEBIRCSATAHTELPOEPNEILASERDDNASYAWHSIDNALTUOEHSRUOBHGIENR\ IEHTHCIHWNOSTAFRIEHTOTSSERTSHCUSYALSIRGNIVAHSREHTOMDNASREHUOENARRETBUSEMOSFOTUONEREWYEHTH\ CIHWOTNINOSIRPSNIOGAEMITGNOLDENNAPERTENILEMAHFOTUODNABYTHGIMAHTUBDNALKCIWSNURBNINWOTATSRE\ DNUTNODYEHTYHWROWOWEBEMDNAUOYTELYLLIWOSDNLLAHTIWTUOSEROCSFOSREPIWDNASREPIPYLLAICEPSENEMOR\ FEERFSUEPIPYEHTREHTEHRPEVEWFIECIMMORFROSTARMEEKSUTELTHGUAMEHTDESIMO > /* I can't see any words! I must have the key backwards ... */ > Enciphering(ZZ!Reverse(dk),Encoding(ZZ,ct)); HAMELINTOWNSINBRUNSWICKBYFAMOUSHANOVERCITYTHERIVERWESERDEEPANDWIDEWASHESITSWALLONTHESOUTH\ ERNSIDEAPLEASANTERSPOTYOUNEVERSPIEDBUTWHENBEGINSMYDITTYALMOSTFIVEHUNDREDYEARSAGOTOSEETHET\ OWNSFOLKSUFFERSOFROMVERMINWASAPITYRATSTHEYFOUGHTTHEDOGSANDKILLEDTHECATSANDBITTHEBABIESINT\ HECRADLESANDATETHECHEESESOUTOFTHEVATSANDLICKEDTHESOUPFROMTHECOOKSOWNLADLESSPLITOPENTHEKEG\ SOFSALTEDSPRATSMADENESTSINSIDEMENSSUNDAYHATSANDEVENSPOILEDTHEWOMENSCHATSBYDROWNINGTHEIRSP\ EAKINGWITHSHRIEKINGANDSQUEAKINGINFIFTYDIFFERENTSHARPSANDFLATSATLASTTHEPEOPLEINABODYTOTHET\ OWNHALLCAMEFLOCKINGTISCLEARCRIEDTHEYOURMAYORSANODDYANDASFOROURCORPORATIONSHOCKINGTOTHINKW\ EBUYGOWNSLINEDWITHERMINEFORDOLTSTHATCANTORWONTDETERMINEWHATSBESTTORIDUSOFOURVERMINYOUHOPE\ BECAUSEYOUREOLDANDOBESETOFINDINTHEFURRYCIVICROBEEASEROUSEUPSIRSGIVEYOURBRAINSARACKINGTOFI\ NDTHEREMEDYWERELACKINGORSUREASFATEWELLSENDYOUPACKINGATTHISTHEMAYORANDCORPORATIONQUAKEDWIT\ HAMIGHTYCONSTERNATIONANHOURTHEYSATEINCOUNCILATLENGTHTHEMAYORBROKESILENCEFORAGUILDERIDMYER\ MINEGOWNSELLIWISHIWEREAMILEHENCEITSEASYTOBIDONERACKONESBRAINIMSUREMYPOORHEADACHESAGAINIVE\ SCRATCHEDITSOANDALLINVAINOHFORATRAPATRAPATRAPJUSTASHESAIDTHISWHATSHOULDHAPATTHECHAMBERDOO\ RBUTAGENTLETAPBLESSUSCRIEDTHEMAYORWHATSTHATWITHTHECORPORATIONASHESATLOOKINGLITTLETHOUGHWO\ NDROUSFATNORBRIGHTERWASHISEYENORMOISTERTHANATOOLONGOPENEDOYSTERSAVEWHENATNOONHISPAUNCHGRE\ WMUTINOUSFORAPLATEOFTURTLEGREENANDGLUTINOUSONLYASCRAPINGOFSHOESONTHEMATANYTHINGLIKETHESOU\ NDOFARATMAKESMYHEARTGOPITAPATCOMEINTHEMAYORCRIEDLOOKINGBIGGERANDINDIDCOMETHESTRANGESTFIGU\ REHISQUEERLONGCOATFROMHEELTOHEADWASHALFOFYELLOWANDHALFOFREDANDHEHIMSELFWASTALLANDTHINWITH\ SHARPBLUEEYESEACHLIKEAPINANDLIGHTLOOSEHAIRYETSWARTHYSKINNOTUFTONCHEEKNORBEARDONCHINBUTLIP\ SWHERESMILESWENTOUTANDINTHEREWASNOGUESSINGHISKITHANDKINANDNOBODYCOULDENOUGHADMIRETHETALLM\ ANANDHISQUAINTATTIREQUOTHONEITSASMYGREATGRANDSIRESTARTINGUPATTHETRUMPOFDOOMSTONEHADWALKED\ THISWAYFROMHISPAINTEDTOMBSTONEHEADVANCEDTOTHECOUNCILTABLEANDPLEASEYOURHONOURSSAIDHEIMABLE\ BYMEANSOFASECRETCHARMTODRAWALLCREATURESLIVINGBENEATHTHESUNTHATCREEPORSWIMORFLYORRUNAFTERM\ ESOASYOUNEVERSAWANDICHIEFLYUSEMYCHARMONCREATURESTHATDOPEOPLEHARMTHEMOLEANDTOADANDNEWTANDV\ IPERANDPEOPLECALLMETHEPIEDPIPERANDHERETHEYNOTICEDROUNDHISNECKASCARFOFREDANDYELLOWSTRIPETO\ MATCHWITHHISCOATOFTHESELFSAMECHEQUEANDATTHESCARFSENDHUNGAPIPEANDHISFINGERSTHEYNOTICEDWERE\ EVERSTRAYINGASIFIMPATIENTTOBEPLAYINGUPONTHISPIPEASLOWITDANGLEDOVERHISVESTURESOOLDFANGLEDY\ ETSAIDHEPOORPIPERASIAMINTARTARYIFREEDTHECHAMLASTJUNEFROMHISHUGESWARMSOFGNATSIEASEDINASIAT\ HENIZAMOFAMONSTROUSBROODOFVAMPIREBATSANDASFORWHATYOURBRAINBEWILDERSIFICANRIDYOURTOWNOFRAT\ SWILLYOUGIVEMEATHOUSANDGUILDERSONEFIFTYTHOUSANDWASTHEEXCLAMATIONOFTHEASTONISHEDMAYORANDCO\ RPORATIONINTOTHESTREETTHEPIPERSTEPPEDSMILINGFIRSTALITTLESMILEASIFHEKNEWWHATMAGICSLEPTINHI\ SQUIETPIPETHEWHILETHENLIKEAMUSICALADEPTTOBLOWTHEPIPEHISLIPSHEWRINKLEDANDGREENANDBLUEHISSH\ ARPEYESTWINKLEDLIKEACANDLEFLAMEWHERESALTISSPRINKLEDANDERETHREESHRILLNOTESTHEPIPEUTTEREDYO\ UHEARDASIFANARMYMUTTEREDANDTHEMUTTERINGGREWTOAGRUMBLINGANDTHEGRUMBLINGGREWTOAMIGHTYRUMBLI\ NGANDOUTOFTHEHOUSESTHERATSCAMETUMBLINGGREATRATSSMALLRATSLEANRATSBRAWNYRATSBROWNRATSBLACKR\ ATSGREYRATSTAWNYRATSGRAVEOLDPLODDERSGAYYOUNGFRISKERSFATHERSMOTHERSUNCLESCOUSINSCOCKINGTAI\ LSANDPRICKINGWHISKERSFAMILIESBYTENSANDDOZENSBROTHERSSISTERSHUSBANDSWIVESFOLLOWEDTHEPIPERF\ ORTHEIRLIVESFROMSTREETTOSTREETHEPIPEDADVANCINGANDSTEPFORSTEPTHEYFOLLOWEDDANCINGUNTILTHEYC\ AMETOTHERIVERWESERWHEREINALLPLUNGEDANDPERISHEDSAVEONEWHOSTOUTASJULIUSCAESARSWAMACROSSANDL\ IVEDTOCARRYASHETHEMANUSCRIPTHECHERISHEDTORATLANDHOMEHISCOMMENTARYWHICHWASATTHEFIRSTSHRILL\ NOTESOFTHEPIPEIHEARDASOUNDASOFSCRAPINGTRIPEANDPUTTINGAPPLESWONDROUSRIPEINTOACIDERPRESSSGR\ IPEANDAMOVINGAWAYOFPICKLETUBBOARDSANDALEAVINGAJAROFCONSERVECUPBOARDSANDADRAWINGTHECORKSOF\ TRAINOILFLASKSANDABREAKINGTHEHOOPSOFBUTTERCASKSANDITSEEMEDASIFAVOICESWEETERFARTHANBYHARPO\ RBYPSALTERYISBREATHEDCALLEDOUTOHRATSREJOICETHEWORLDISGROWNTOONEVASTDRYSALTERYSOMUNCHONCRU\ NCHONTAKEYOURNUNCHEONBREAKFASTSUPPERDINNERLUNCHEONANDJUSTASABULKYSUGARPUNCHEONALLREADYSTA\ VEDLIKEAGREATSUNSHONEGLORIOUSSCARCEANINCHBEFOREMEJUSTASMETHOUGHTITSAIDCOMEBOREMEIFOUNDTHE\ WESERROLLINGOERMEYOUSHOULDHAVEHEARDTHEHAMELINPEOPLERINGINGTHEBELLSTILLTHEYROCKEDTHESTEEPL\ EGOCRIEDTHEMAYORANDGETLONGPOLESPOKEOUTTHENESTSANDBLOCKUPTHEHOLESCONSULTWITHCARPENTERSANDB\ UILDERSANDLEAVEINOURTOWNNOTEVENATRACEOFTHERATSWHENSUDDENLYUPTHEFACEOFTHEPIPERPERKEDINTHEM\ ARKETPLACEWITHAFIRSTIFYOUPLEASEMYTHOUSANDGUILDERSATHOUSANDGUILDERSTHEMAYORLOOKEDBLUESODID\ THECORPORATIONTOOFORCOUNCILDINNERSMADERAREHAVOCWITHCLARETMOSELLEVINDEGRAVEHOCKANDHALFTHEM\ ONEYWOULDREPLENISHTHEIRCELLARSBIGGESTBUTTWITHRHENISHTOPAYTHISSUMTOAWANDERINGFELLOWWITHAGY\ PSYCOATOFREDANDYELLOWBESIDEQUOTHTHEMAYORWITHAKNOWINGWINKOURBUSINESSWASDONEATTHERIVERSBRIN\ KWESAWWITHOUREYESTHEVERMINSINKANDWHATSDEADCANTCOMETOLIFEITHINKSOFRIENDWERENOTTHEFOLKSTOSH\ RINKFROMTHEDUTYOFGIVINGYOUSOMETHINGFORDRINKANDAMATTEROFMONEYTOPUTINYOURPOKEBUTASFORTHEGUI\ LDERSWHATWESPOKEOFTHEMASYOUVERYWELLKNOWWASINJOKEBESIDEOURLOSSESHAVEMADEUSTHRIFTYATHOUSAND\ GUILDERSCOMETAKEFIFTYTHEPIPERSFACEFELLANDHECRIEDNOTRIFLINGICANTWAITBESIDEIVEPROMISEDTOVIS\ ITBYDINNERTIMEBAGDATANDACCEPTTHEPRIMEOFTHEHEADCOOKSPOTTAGEALLHESRICHINFORHAVINGLEFTINTHEC\ ALIPSKITCHENOFANESTOFSCORPIONSNOSURVIVORWITHHIMIPROVEDNOBARGAINDRIVERWITHYOUDONTTHINKILLB\ ATEASTIVERANDFOLKSWHOPUTMEINAPASSIONMAYFINDMEPIPETOANOTHERFASHIONHOWCRIEDTHEMAYORDYETHINK\ ILLBROOKBEINGWORSETREATEDTHANACOOKINSULTEDBYALAZYRIBALDWITHIDLEPIPEANDVESTUREPIEBALDYOUTH\ REATENUSFELLOWDOYOURWORSTBLOWYOURPIPETHERETILLYOUBURSTONCEMOREHESTEPPEDINTOTHESTREETANDTO\ HISLIPSAGAINLAIDHISLONGPIPEOFSMOOTHSTRAIGHTCANEANDEREHEBLEWTHREENOTESSUCHSWEETSOFTNOTESAS\ YETMUSICIANSCUNNINGNEVERGAVETHEENRAPTUREDAIRTHEREWASARUSTLINGTHATSEEMEDLIKEABUSTLINGOFMER\ RYCROWDSJUSTLINGATPITCHINGANDHUSTLINGSMALLFEETWEREPATTERINGWOODENSHOESCLATTERINGLITTLEHAN\ DSCLAPPINGANDLITTLETONGUESCHATTERINGANDLIKEFOWLSINAFARMYARDWHENBARLEYISSCATTERINGOUTCAMET\ HECHILDRENRUNNINGALLTHELITTLEBOYSANDGIRLSWITHROSYCHEEKSANDFLAXENCURLSANDSPARKLINGEYESANDT\ EETHLIKEPEARLSTRIPPINGANDSKIPPINGRANMERRILYAFTERTHEWONDERFULMUSICWITHSHOUTINGANDLAUGHTERT\ HEMAYORWASDUMBANDTHECOUNCILSTOODASIFTHEYWERECHANGEDINTOBLOCKSOFWOODUNABLETOMOVEASTEPORCRY\ TOTHECHILDRENMERRILYSKIPPINGBYANDCOULDONLYFOLLOWWITHTHEEYETHATJOYOUSCROWDATTHEPIPERSBACKB\ UTHOWTHEMAYORWASONTHERACKANDTHEWRETCHEDCOUNCILSBOSOMSBEATASTHEPIPERTURNEDFROMTHEHIGHSTREE\ TTOWHERETHEWESERROLLEDITSWATERSRIGHTINTHEWAYOFTHEIRSONSANDDAUGHTERSHOWEVERHETURNEDFROMSOU\ THTOWESTANDTOKOPPELBERGHILLHISSTEPSADDRESSEDANDAFTERHIMTHECHILDRENPRESSEDGREATWASTHEJOYIN\ EVERYBREASTHENEVERCANCROSSTHATMIGHTYTOPHESFORCEDTOLETTHEPIPINGDROPANDWESHALLSEEOURCHILDRE\ NSTOPWHENLOASTHEYREACHEDTHEMOUNTAINSSIDEAWONDROUSPORTALOPENEDWIDEASIFACAVERNWASSUDDENLYHO\ LLOWEDANDTHEPIPERADVANCEDANDTHECHILDRENFOLLOWEDANDWHENALLWEREINTOTHEVERYLASTTHEDOORINTHEM\ OUNTAINSIDESHUTFASTDIDISAYALLNOONEWASLAMEANDCOULDNOTDANCETHEWHOLEOFTHEWAYANDINAFTERYEARSI\ FYOUWOULDBLAMEHISSADNESSHEWASUSEDTOSAYITSDULLINOURTOWNSINCEMYPLAYMATESLEFTICANTFORGETTHAT\ IMBEREFTOFALLTHEPLEASANTSIGHTSTHEYSEEWHICHTHEPIPERALSOPROMISEDMEFORHELEDUSHESAIDTOAJOYOUS\ LANDJOININGTHETOWNANDJUSTATHANDWHEREWATERSGUSHEDANDFRUITTREESGREWANDFLOWERSPUTFORTHAFAIRE\ RHUEANDEVERYTHINGWASSTRANGEANDNEWTHESPARROWSWEREBRIGHTERTHANPEACOCKSHEREANDTHEIRDOGSOUTRA\ NOURFALLOWDEERANDHONEYBEESHADLOSTTHEIRSTINGSANDHORSESWEREBORNWITHEAGLESWINGSANDJUSTASIBEC\ AMEASSUREDMYLAMEFOOTWOULDBESPEEDILYCUREDTHEMUSICSTOPPEDANDISTOODSTILLANDFOUNDMYSELFOUTSID\ ETHEHILLLEFTALONEAGAINSTMYWILLTOGONOWLIMPINGASBEFOREANDNEVERHEAROFTHATCOUNTRYMOREALASALAS\ FORHAMELINTHERECAMEINTOMANYABURGHERSPATEATEXTWHICHSAYSTHATHEAVENSGATEOPESTOTHERICHATASEAS\ YRATEASTHENEEDLESEYETAKESACAMELINTHEMAYORSENTEASTWESTNORTHANDSOUTHTOOFFERTHEPIPERBYWORDOF\ MOUTHWHEREVERITWASMENSLOTTOFINDHIMSILVERANDGOLDTOHISHEARTSCONTENTIFHEDONLYRETURNTHEWAYHEW\ ENTANDBRINGTHECHILDRENBEHINDHIMBUTWHENTHEYSAWTWASALOSTENDEAVOURANDPIPERANDDANCERSWEREGONE\ FOREVERTHEYMADEADECREETHATLAWYERSNEVERSHOULDTHINKTHEIRRECORDSDATEDDULYIFAFTERTHEDAYOFTHEM\ ONTHANDYEARTHESEWORDSDIDNOTASWELLAPPEARANDSOLONGAFTERWHATHAPPENEDHEREONTHETWENTYSECONDOFJ\ ULYTHIRTEENHUNDREDANDSEVENTYSIXANDTHEBETTERINMEMORYTOFIXTHEPLACEOFTHECHILDRENSLASTRETREAT\ THEYCALLEDITTHEPIEDPIPERSSTREETWHEREANYONEPLAYINGONPIPEORTABORWASSUREFORTHEFUTURETOLOSEHI\ SLABOURNORSUFFEREDTHEYHOSTELRYORTAVERNTOSHOCKWITHMIRTHASTREETSOSOLEMNBUTOPPOSITETHEPLACEO\ FTHECAVERNTHEYWROTETHESTORYONACOLUMNANDONTHEGREATCHURCHWINDOWPAINTEDTHESAMETOMAKETHEWORLD\ ACQUAINTEDHOWTHEIRCHILDRENWERESTOLENAWAYANDTHEREITSTANDSTOTHISVERYDAYANDIMUSTNOTOMITTOSAY\ THATINTRANSYLVANIATHERESATRIBEOFALIENPEOPLETHATASCRIBETHEOUTLANDISHWAYSANDDRESSONWHICHTHE\ IRNEIGHBOURSLAYSUCHSTRESSTOTHEIRFATHERSANDMOTHERSHAVINGRISENOUTOFSOMESUBTERRANEOUSPRISONI\ NTOWHICHTHEYWERETREPANNEDLONGTIMEAGOINAMIGHTYBANDOUTOFHAMELINTOWNINBRUNSWICKLANDBUTHOWORW\ HYTHEYDONTUNDERSTANDSOWILLYLETYOUANDMEBEWIPERSOFSCORESOUTWITHALLMENESPECIALLYPIPERSANDWHE\ THERTHEYPIPEUSFREEFROMRATSORFROMMICEIFWEVEPROMISEDTHEMAUGHTLETUSKEE > /* Browning's "The Pied Piper of Hamelin" */ > rats; Hamelin Town's in Brunswick, By famous Hanover city; The river Weser, deep and wide, Washes its wall on the southern side; A pleasanter spot you never spied; But, when begins my ditty, Almost five hundred years ago, To see the townsfolk suffer so From vermin, was a pity. Rats! They fought the dogs, and killed the cats, And bit the babies in the cradles, And ate the cheeses out of the vats, And licked the soup from the cook's own ladles, Split open the kegs of salted sprats, Made nests inside men's Sunday hats, And even spoiled the women's chats, By drowning their speaking With shrieking and squeaking In fifty different sharps and flats. At last the people in a body To the Town Hall came flocking: ''Tis clear,' cried they, 'our Mayor's a noddy; And as for our Corporation -shocking To think we buy gowns lined with ermine For dolts that can't or won't determine What's best to rid us of our vermin! You hope, because you're old and obese, To find in the furry civic robe ease? Rouse up, Sirs! Give your brains a racking To find the remedy we're lacking, Or, sure as fate, we'll send you packing!' At this the Mayor and Corporation Quaked with a mighty consternation. An hour they sate in council, At length the Mayor broke silence: 'For a guilder I'd my ermine gown sell; I wish I were a mile hence! It's easy to bid one rack one's brain - I'm sure my poor head aches again I've scratched it so, and all in vain. Oh for a trap, a trap, a trap!' Just as he said this, what should hap At the chamber door but a gentle tap? 'Bless us,' cried the Mayor, 'what's that?' (With the Corporation as he sat, Looking little though wondrous fat; Nor brighter was his eye, nor moister Than a too-long-opened oyster, Save when at noon his paunch grew mutinous For a plate of turtle green and glutinous) 'Only a scraping of shoes on the mat? Anything like the sound of a rat Makes my heart go pit-a-pat!' 'Come in!' -the Mayor cried, looking bigger: And in did come the strangest figure! His queer long coat from heel to head Was half of yellow and half of red; And he himself was tall and thin, With sharp blue eyes, each like a pin, And light loose hair, yet swarthy skin, No tuft on cheek nor beard on chin, But lips where smiles went out and in - There was no guessing his kith and kin! And nobody could enough admire The tall man and his quaint attire: Quoth one: 'It's as my great-grandsire, Starting up at the Trump of Doom's tone, Had walked this way from his painted tombstone!' He advanced to the council-table: And, 'Please your honours,' said he, 'I'm able, By means of a secret charm, to draw All creatures living beneath the sun, That creep or swim or fly or run, After me so as you never saw! And I chiefly use my charm On creatures that do people harm, The mole and toad and newt and viper; And people call me the Pied Piper.' (And here they noticed round his neck A scarf of red and yellow stripe, To match with his coat of the selfsame cheque; And at the scarf's end hung a pipe; And his fingers, they noticed, were ever straying As if impatient to be playing Upon this pipe, as low it dangled Over his vesture so old-fangled.) 'Yet,' said he, 'poor piper as I am, In Tartary I freed the Cham, Last June, from his huge swarms of gnats; I eased in Asia the Nizam Of a monstrous brood of vampire-bats; And, as for what your brain bewilders, If I can rid your town of rats Will you give me a thousand guilders?' 'One? fifty thousand!' -was the exclamation Of the astonished Mayor and Corporation. Into the street the Piper stepped, Smiling first a little smile, As if he knew what magic slept In his quiet pipe the while; Then, like a musical adept, To blow the pipe his lips he wrinkled, And green and blue his sharp eyes twinkled Like a candle flame where salt is sprinkled; And ere three shrill notes the pipe uttered, You heard as if an army muttered; And the muttering grew to a grumbling; And the grumbling grew to a mighty rumbling; And out of the houses the rats came tumbling. Great rats, small rats, lean rats, brawny rats, Brown rats, black rats, grey rats, tawny rats, Grave old plodders, gay young friskers, Fathers, mothers, uncles, cousins, Cocking tails and pricking whiskers, Families by tens and dozens, Brothers, sisters, husbands, wives - Followed the Piper for their lives. From street to street he piped advancing, And step for step they followed dancing, Until they came to the river Weser, Wherein all plunged and perished! - Save one who, stout as Julius Caesar, Swam across and lived to carry (As he, the manuscript he cherished) To Rat-land home his commentary: Which was, 'At the first shrill notes of the pipe I heard a sound as of scraping tripe, And putting apples, wondrous ripe, Into a cider-press's gripe: And a moving away of pickle-tub-boards, And a leaving ajar of conserve-cupboards, And a drawing the corks of train-oil-flasks, And a breaking the hoops of butter-casks; And it seemed as if a voice (Sweeter far than by harp or by psaltery Is breathed) called out `Oh, rats, rejoice! The world is grown to one vast drysaltery! So munch on, crunch on, take your nuncheon, Breakfast, supper, dinner, luncheon!' And just as a bulky sugar-puncheon, All ready staved, like a great sun shone Glorious scarce an inch before me, Just as methought it said `Come, bore me!' - I found the Weser rolling o'er me.' You should have heard the Hamelin people Ringing the bells till they rocked the steeple. 'Go,' cried the Mayor, 'and get long poles! Poke out the nests and block up the holes! Consult with carpenters and builders, And leave in our town not even a trace Of the rats!' -when suddenly, up the face Of the Piper perked in the market-place, With a, 'First, if you please, my thousand guilders!' A thousand guilders! The Mayor looked blue; So did the Corporation too. For council dinners made rare havoc With Claret, Moselle, Vin-de-Grave, Hock; And half the money would replenish Their cellar's biggest butt with Rhenish. To pay this sum to a wandering fellow With a gypsy coat of red and yellow! 'Beside,' quoth the Mayor with a knowing wink, 'Our business was done at the river's brink; We saw with our eyes the vermin sink, And what's dead can't come to life, I think. So, friend, we're not the folks to shrink From the duty of giving you something for drink, And a matter of money to put in your poke; But, as for the guilders, what we spoke Of them, as you very well know, was in joke. Beside, our losses have made us thrifty. A thousand guilders! Come, take fifty!' The Piper's face fell, and he cried 'No trifling! I can't wait, beside! I've promised to visit by dinner-time Bagdat, and accept the prime Of the Head Cook's pottage, all he's rich in, For having left, in the Calip's kitchen, Of a nest of scorpions no survivor - With him I proved no bargain-driver, With you, don't think I'll bate a stiver! And folks who put me in a passion May find me pipe to another fashion.' 'How?' cried the Mayor, 'd'ye think I'll brook Being worse treated than a Cook? Insulted by a lazy ribald With idle pipe and vesture piebald? You threaten us, fellow? Do your worst, Blow your pipe there till you burst!' Once more he stepped into the street; And to his lips again Laid his long pipe of smooth straight cane; And ere he blew three notes (such sweet Soft notes as yet musician's cunning Never gave the enraptured air) There was a rustling, that seemed like a bustling Of merry crowds justling at pitching and hustling, Small feet were pattering, wooden shoes clattering, Little hands clapping and little tongues chattering, And, like fowls in a farmyard when barley is scattering, Out came the children running. All the little boys and girls, With rosy cheeks and flaxen curls, And sparkling eyes and teeth like pearls, Tripping and skipping, ran merrily after The wonderful music with shouting and laughter. The Mayor was dumb, and the Council stood As if they were changed into blocks of wood, Unable to move a step, or cry To the children merrily skipping by - And could only follow with the eye That joyous crowd at the Piper's back. But how the Mayor was on the rack, And the wretched Council's bosoms beat, As the Piper turned from the High Street To where the Weser rolled its waters Right in the way of their sons and daughters! However he turned from South to West, And to Koppelberg Hill his steps addressed, And after him the children pressed; Great was the joy in every breast. 'He never can cross that mighty top! He's forced to let the piping drop, And we shall see our children stop!' When, lo, as they reached the mountain's side, A wondrous portal opened wide, As if a cavern was suddenly hollowed; And the Piper advanced and the children followed, And when all were in to the very last, The door in the mountain-side shut fast. Did I say, all? No! One was lame, And could not dance the whole of the way; And in after years, if you would blame His sadness, he was used to say, - 'It's dull in our town since my playmates left! I can't forget that I'm bereft Of all the pleasant sights they see, Which the Piper also promised me: For he led us, he said, to a joyous land, Joining the town and just at hand, Where waters gushed and fruit-trees grew, And flowers put forth a fairer hue, And everything was strange and new; The sparrows were brighter than peacocks here, And their dogs outran our fallow deer, And honey-bees had lost their stings, And horses were born with eagles' wings: And just as I became assured My lame foot would be speedily cured, The music stopped and I stood still, And found myself outside the Hill, Left alone against my will, To go now limping as before, And never hear of that country more!' Alas, alas for Hamelin! There came into many a burgher's pate A text which says, that Heaven's Gate Opes to the Rich at as easy rate As the needle's eye takes a camel in! The Mayor sent East, West, North, and South, To offer the Piper, by word of mouth, Wherever it was men's lot to find him, Silver and gold to his heart's content, If he'd only return the way he went, And bring the children behind him. But when they saw 'twas a lost endeavour, And Piper and dancers were gone for ever, They made a decree that lawyers never Should think their records dated duly If, after the day of the month and year, These words did not as well appear, 'And so long after what happened here On the Twenty-second of July, Thirteen hundred and seventy-six': And the better in memory to fix The place of the children's last retreat, They called it, the Pied Piper's Street - Where any one playing on pipe or tabor Was sure for the future to lose his labour. Nor suffered they hostelry or tavern To shock with mirth a street so solemn; But opposite the place of the cavern They wrote the story on a column, And on the great Church-Window painted The same, to make the world acquainted How their children were stolen away; And there it stands to this very day. And I must not omit to say That in Transylvania there's a tribe Of alien people that ascribe The outlandish ways and dress On which their neighbours lay such stress, To their fathers and mothers having risen Out of some subterraneous prison Into which they were trepanned Long time ago in a mighty band Out of Hamelin town in Brunswick land, But how or why, they don't understand. So, Willy, let you and me be wipers Of scores out with all men -especially pipers: And, whether they pipe us free, from rats or from mice, If we've promised them aught, let us keep our promise. > for i:=2 to 23 do for> "1",i,":",CompareDigraphs(Decimation(ct,[1,i],23),sample); for> end for; 1 2 : 0.0023516472035509056212 1 3 : 0.0060899195987429585895 1 4 : 0.0072295576910298581299 1 5 : 0.0063864305538998121693 1 6 : 0.0072111379590731280096 1 7 : 0.0084302145455064738687 1 8 : 0.0058651932892473882705 1 9 : 0.0072263270890448685837 1 10 : 0.0066024400966405467044 1 11 : 0.010395677362565124753 1 12 : 0.0059326481471015007408 1 13 : 0.0065977643721786792781 1 14 : 0.0071051306929024606685 1 15 : 0.0068117331676378768075 1 16 : 0.0062960043862491505415 1 17 : 0.0053593781038462788904 1 18 : 0.0077887977710877462765 1 19 : 0.0073813429779014697414 1 20 : 0.0071372330564959621449 1 21 : 0.0065631539678386271959 1 22 : 0.0060437272909998977837 1 23 : 0.0061446403609489840266 > /* There is one value significantly smaller than the others, namely when i=2.*/ > for i:=0 to 21 do for> "2",((2+i) mod 23)+1,CompareDigraphs(Decimation(ct,[2,((2+i) mod 23)+1],23),sample); for> end for; 2 3 0.0062901374121779648630 2 4 0.0068264326856507523855 2 5 0.0066529998546491525316 2 6 0.0067470081405629631896 2 7 0.0060985721998279716101 2 8 0.0069011619775945541838 2 9 0.0086185045188837747836 2 10 0.0067978915167324142561 2 11 0.0065831806313526578160 2 12 0.0063346279347648567369 2 13 0.0060072532924232541494 2 14 0.0066510386170019611230 2 15 0.0068044433895836646444 2 16 0.0058581671484017957209 2 17 0.0061957873743270547062 2 18 0.0067312498889980120217 2 19 0.0025410782099263591479 2 20 0.0058086577545100712102 2 21 0.0066405712433856564789 2 22 0.0064739162599855523957 2 23 0.0065047729726409728431 2 1 0.010311312060900982805 > /* Again there is one low value, namely for the pair 2,19. This is because 19 follows > 2 in the key: Decimation(ct,[2,19],23) was a sequence of digraphs in the plaintext. > CompareDigraphs returns a much lower value when the chosen pairs really > were digraphs -- in the correct order -- in the original plaintext. > It is probably actually a better test to use than either the CI or CD. */ > for i:=0 to 21 do for> "3",((3+i) mod 23)+1,CompareDigraphs(Decimation(ct,[3,((3+i) mod 23)+1],23),sample); for> end for; 3 4 0.0058994758907089979771 3 5 0.0071911740663230544402 3 6 0.0070329722124691665277 3 7 0.0055127187107581596487 3 8 0.0075076754174414301217 3 9 0.0067632699531454364760 3 10 0.0071485959596780540465 3 11 0.0064465774999234582176 3 12 0.011635342759576383265 3 13 0.0063758390336614591363 3 14 0.0061811255187725533589 3 15 0.0032912767182826557240 3 16 0.0059222784168957959536 3 17 0.0074418470198267381230 3 18 0.0066881040556656667466 3 19 0.0068498601296653894451 3 20 0.0091493052581515217954 3 21 0.0067126237109731564899 3 22 0.0066227276075514655133 3 23 0.0057507928744827303861 3 1 0.0060511523749230840334 3 2 0.0074046950969993583403 > /* Sure enough, 15 follows 3 in the key. */ > for i:=0 to 21 do for> "4",((4+i) mod 23)+1,CompareDigraphs(Decimation(ct,[4,((4+i) mod 23)+1],23),sample); for> end for; 4 5 0.0058534565512932854889 4 6 0.0068905704573562011503 4 7 0.0063970639213141365696 4 8 0.0053686291195476824619 4 9 0.0066579894329308052114 4 10 0.0075934509689358071432 4 11 0.0064443484403500500589 4 12 0.0061739529128110610241 4 13 0.0051326863719859200266 4 14 0.0069077738313980301981 4 15 0.0069979558905221921835 4 16 0.0068149902728343148862 4 17 0.0034573639749954149255 4 18 0.0074858967521600649288 4 19 0.0058624522992212637204 4 20 0.0070946479753216331901 4 21 0.0082423472286064837619 4 22 0.0080716749163131284294 4 23 0.0097040495566042193952 4 1 0.0073264757505795445196 4 2 0.0058653285951163623581 4 3 0.0059770103383487470883 > /* 17 follows 4 in the key */ > for i:=0 to 21 do for> "5",((5+i) mod 23)+1,CompareDigraphs(Decimation(ct,[5,((5+i) mod 23)+1],23),sample); for> end for; 5 6 0.0064783032389332173888 5 7 0.0067217129175941374415 5 8 0.0071092944869116117030 5 9 0.0061227598675394218405 5 10 0.0064585653209333892023 5 11 0.0045704332952580934427 5 12 0.0061318309403841485330 5 13 0.0095883393252316577170 5 14 0.0068946170792726323564 5 15 0.0062537652417295182222 5 16 0.0027477460680844188162 5 17 0.0081098018783406410676 5 18 0.0066173321116628905714 5 19 0.0063184372623815347752 5 20 0.0062846442728787900648 5 21 0.0055923580713492685293 5 22 0.0063549001017112527114 5 23 0.0065628108209956619848 5 1 0.0068532525407308016111 5 2 0.0069739063184914474650 5 3 0.0064163680235897282497 5 4 0.0061845932547547139854 > /* 16 follows 5 in the key */ > for i:=0 to 21 do for> "6",((6+i) mod 23)+1,CompareDigraphs(Decimation(ct,[6,((6+i) mod 23)+1],23),sample); for> end for; 6 7 0.0065005938346672989737 6 8 0.0064373222995044575092 6 9 0.0065168333287559208642 6 10 0.0063943717529933119479 6 11 0.0071629202480130530325 6 12 0.0021926934954353988119 6 13 0.0060709502738751378467 6 14 0.0066672822958081801500 6 15 0.0066808449655405002534 6 16 0.0063584473473277589359 6 17 0.0065565644325290025772 6 18 0.0062443900794060662620 6 19 0.0064876491082334893925 6 20 0.0061894391577321983051 6 21 0.0063117319498850560404 6 22 0.0062935981736307969290 6 23 0.0064467393090038808375 6 1 0.0067593921148387564508 6 2 0.0053982318118298276049 6 3 0.0078820821008572522829 6 4 0.0066730432570335716988 6 5 0.0074184084165651753650 > /* 12 follows 6 in the key. We could go on and get the whole key like this. */ > CheckMersenne:=procedure(p) procedure> m:=2^p-1; procedure> r:=4; procedure> for i:=1 to p-2 do procedure|for> r:= (r^2-2) mod m; procedure|for> end for; procedure> if r eq 0 then print "M(",p,")=",m,"is prime"; procedure|if> else print "M(",p,")=",m,"is not prime"; procedure|if> end if; procedure> end procedure; > CheckMersenne(3); M( 3 )= 7 is prime > CheckMersenne(31); M( 31 )= 2147483647 is prime > CheckMersenne(107); M( 107 )= 162259276829213363391578010288127 is prime > CheckMersenne(4421); M( 4421 )= 713856355570699034753908915255410020815410596611757222998118641505711000976501\ 63468988642876384960809938628478974037574469599844264017858792436805276997197799550247119\ 38283480357069300401475247614667156374727120393385562010225558607439708813150109597265815\ 40310190793468542202871481215470904684760439457864240042298935976913995700471497588946121\ 47769420919293880108518571931644501566689903992689880331957138915695419596422895461109111\ 20312789060703418562261484080320254506902402202785025084439259088643128023101841173039419\ 92865498469048241400756700654475295332312530807616111096555772194811523434432531204204181\ 06123418618622134442538945751720213162040378266786203697572091666015564318666318946781843\ 66230777409375029272547269656583115489469893285642345126826402991939508452108334549687522\ 57422079839782738174553277853305983391225446221822455720390706502034578240359159614863577\ 86010938455385717819436401611964641039803332110895051605678673728272940679111760422419517\ 52419339760745222740418761323181450021087508620790707427247568216249549859691180864356906\ 59324237120761877292935465452826721296981871556530733353422320141585961166615816431190418\ 18915209776412632243928474830052780373948827856986563638326346766955266900442187744466525\ 11500365053460211200530626342226369843550077393052418323868768042952888296782755776447565\ 2145151 is not prime > CheckMersenne(4423); M( 4423 )= 285542542228279613901563566102164008326164238644702889199247456602284400390600\ 65387595457150553984323975451391589615029787839937705607143516974722110798879119820098847\ 75313392142827720160590099045866862549890848157354224804090223442975883525260043838906326\ 16124076317387416881148592486188361873904175783145696016919574390765598280188599035578448\ 59107768367717552043407428772657800626675961597075952132782855566278167838569158184443644\ 48125115624281367424904593632128101802760960881114010033775703635457251209240736469215767\ 97146199387619296560302680261790118132925012323046444438622308877924609373773012481681672\ 42449367447448853777015578300688085264816151306714481479028836666406225727466527578712737\ 46492310963750011709018907862633246195787957314256938050730561196775803380843333819875009\ 02968831935913095269821311141322393356490178488728982288156282600813831296143663845945431\ 14404375382154287127774560644785856415921332844358020642271469491309176271644704168967807\ 00967735904298089096167504529272580008435003448316282970899027286499819943876472345742762\ 63729694848304750917174186181130688518792748622612293341368928056634384466646326572476167\ 27566083910565052897571389932021112149579531142794625455330538706782106760176875097786610\ 04600146021384084480212250536890547937420030957220967329547507217181155318713102310579026\ 08580607 is prime > /* Clearly this is a whole lot faster than trying all the numbers up to the > square root to see if there is a divisor. */ > IsPrime(2^500+135); true > IsPrime(2^4423-1); true > /* Actually, there is another function, IsProbablyPrime, which is a whole > lot faster than IsPrime, and (probably) completely reliable. It just hasn't > been proved that the test it uses is reliable. */ > IsProbablyPrime(2^500+135); true > IsProbablyPrime(2^4423-1); true > /* For MATH2988 students and any others who tried Q7, here is what > I had in mind. */ > > p:=2; > repeat repeat> p:=NextPrime(p); repeat> until IsPrime(2*p-1) and EulerPhi(4*p) eq EulerPhi(4*p-1) and EulerPhi(4*p) eq EulerPhi(4*p-2); > p; 1297 > /* So when p is 1297 we should have EulerPhi(4*p)=EulerPhi(4*p-1)=EulerPhi(4*p-2) */ > 4*p; 5188 > EulerPhi(5188); 2592 > EulerPhi(5187); 2592 > EulerPhi(5186); 2592 > /* I believe it is the only known example of three consecutive numbers > that give the same value of the Euler phi function. */ > UnsetLogFile(); From another magma session: > n:=2; > for i:=1 to 100 do for> n:=NextPrime(n); for> CheckMersenne(n); for> end for; M( 3 )= 7 is prime M( 5 )= 31 is prime M( 7 )= 127 is prime M( 11 ) is not prime M( 13 )= 8191 is prime M( 17 )= 131071 is prime M( 19 )= 524287 is prime M( 23 ) is not prime M( 29 ) is not prime M( 31 )= 2147483647 is prime M( 37 ) is not prime M( 41 ) is not prime M( 43 ) is not prime M( 47 ) is not prime M( 53 ) is not prime M( 59 ) is not prime M( 61 )= 2305843009213693951 is prime M( 67 ) is not prime M( 71 ) is not prime M( 73 ) is not prime M( 79 ) is not prime M( 83 ) is not prime M( 89 )= 618970019642690137449562111 is prime M( 97 ) is not prime M( 101 ) is not prime M( 103 ) is not prime M( 107 )= 162259276829213363391578010288127 is prime M( 109 ) is not prime M( 113 ) is not prime M( 127 )= 170141183460469231731687303715884105727 is prime M( 131 ) is not prime M( 137 ) is not prime M( 139 ) is not prime M( 149 ) is not prime M( 151 ) is not prime M( 157 ) is not prime M( 163 ) is not prime M( 167 ) is not prime M( 173 ) is not prime M( 179 ) is not prime M( 181 ) is not prime M( 191 ) is not prime M( 193 ) is not prime M( 197 ) is not prime M( 199 ) is not prime M( 211 ) is not prime M( 223 ) is not prime M( 227 ) is not prime M( 229 ) is not prime M( 233 ) is not prime M( 239 ) is not prime M( 241 ) is not prime M( 251 ) is not prime M( 257 ) is not prime M( 263 ) is not prime M( 269 ) is not prime M( 271 ) is not prime M( 277 ) is not prime M( 281 ) is not prime M( 283 ) is not prime M( 293 ) is not prime M( 307 ) is not prime M( 311 ) is not prime M( 313 ) is not prime M( 317 ) is not prime M( 331 ) is not prime M( 337 ) is not prime M( 347 ) is not prime M( 349 ) is not prime M( 353 ) is not prime M( 359 ) is not prime M( 367 ) is not prime M( 373 ) is not prime M( 379 ) is not prime M( 383 ) is not prime M( 389 ) is not prime M( 397 ) is not prime M( 401 ) is not prime M( 409 ) is not prime M( 419 ) is not prime M( 421 ) is not prime M( 431 ) is not prime M( 433 ) is not prime M( 439 ) is not prime M( 443 ) is not prime M( 449 ) is not prime M( 457 ) is not prime M( 461 ) is not prime M( 463 ) is not prime M( 467 ) is not prime M( 479 ) is not prime M( 487 ) is not prime M( 491 ) is not prime M( 499 ) is not prime M( 503 ) is not prime M( 509 ) is not prime M( 521 )= 6864797660130609714981900799081393217269435300143305409394463459185543183397656\ 052122559640661454554977296311391480858037121987999716643812574028291115057151 is prime M( 523 ) is not prime M( 541 ) is not prime M( 547 ) is not prime > /* Wow that was quick! I'll try something bigger */ > n:=2; > for i:=1 to 1000 do for> n:=NextPrime(n); for> CheckMersenne(n); for> end for; M( 3 )= 7 is prime M( 5 )= 31 is prime M( 7 )= 127 is prime M( 11 ) is not prime M( 13 )= 8191 is prime M( 17 )= 131071 is prime M( 19 )= 524287 is prime M( 23 ) is not prime M( 29 ) is not prime M( 31 )= 2147483647 is prime M( 37 ) is not prime M( 41 ) is not prime M( 43 ) is not prime M( 47 ) is not prime M( 53 ) is not prime M( 59 ) is not prime M( 61 )= 2305843009213693951 is prime M( 67 ) is not prime M( 71 ) is not prime M( 73 ) is not prime M( 79 ) is not prime M( 83 ) is not prime M( 89 )= 618970019642690137449562111 is prime M( 97 ) is not prime M( 101 ) is not prime M( 103 ) is not prime M( 107 )= 162259276829213363391578010288127 is prime M( 109 ) is not prime M( 113 ) is not prime M( 127 )= 170141183460469231731687303715884105727 is prime M( 131 ) is not prime M( 137 ) is not prime M( 139 ) is not prime M( 149 ) is not prime M( 151 ) is not prime M( 157 ) is not prime M( 163 ) is not prime M( 167 ) is not prime M( 173 ) is not prime M( 179 ) is not prime M( 181 ) is not prime M( 191 ) is not prime M( 193 ) is not prime M( 197 ) is not prime M( 199 ) is not prime M( 211 ) is not prime M( 223 ) is not prime M( 227 ) is not prime M( 229 ) is not prime M( 233 ) is not prime M( 239 ) is not prime M( 241 ) is not prime M( 251 ) is not prime M( 257 ) is not prime M( 263 ) is not prime M( 269 ) is not prime M( 271 ) is not prime M( 277 ) is not prime M( 281 ) is not prime M( 283 ) is not prime M( 293 ) is not prime M( 307 ) is not prime M( 311 ) is not prime M( 313 ) is not prime M( 317 ) is not prime M( 331 ) is not prime M( 337 ) is not prime M( 347 ) is not prime M( 349 ) is not prime M( 353 ) is not prime M( 359 ) is not prime M( 367 ) is not prime M( 373 ) is not prime M( 379 ) is not prime M( 383 ) is not prime M( 389 ) is not prime M( 397 ) is not prime M( 401 ) is not prime M( 409 ) is not prime M( 419 ) is not prime M( 421 ) is not prime M( 431 ) is not prime M( 433 ) is not prime M( 439 ) is not prime M( 443 ) is not prime M( 449 ) is not prime M( 457 ) is not prime M( 461 ) is not prime M( 463 ) is not prime M( 467 ) is not prime M( 479 ) is not prime M( 487 ) is not prime M( 491 ) is not prime M( 499 ) is not prime M( 503 ) is not prime M( 509 ) is not prime M( 521 )= 6864797660130609714981900799081393217269435300143305409394463459185543183397656\ 052122559640661454554977296311391480858037121987999716643812574028291115057151 is prime M( 523 ) is not prime M( 541 ) is not prime M( 547 ) is not prime M( 557 ) is not prime M( 563 ) is not prime M( 569 ) is not prime M( 571 ) is not prime M( 577 ) is not prime M( 587 ) is not prime M( 593 ) is not prime M( 599 ) is not prime M( 601 ) is not prime M( 607 )= 5311379928167670986895882065524686273295931177270319231994441382004035598608522\ 42739162502265229285668889329486246501015346579337652707239409519978766587351943831270835\ 393219031728127 is prime M( 613 ) is not prime M( 617 ) is not prime M( 619 ) is not prime M( 631 ) is not prime M( 641 ) is not prime M( 643 ) is not prime M( 647 ) is not prime M( 653 ) is not prime M( 659 ) is not prime M( 661 ) is not prime M( 673 ) is not prime M( 677 ) is not prime M( 683 ) is not prime M( 691 ) is not prime M( 701 ) is not prime M( 709 ) is not prime M( 719 ) is not prime M( 727 ) is not prime M( 733 ) is not prime M( 739 ) is not prime M( 743 ) is not prime M( 751 ) is not prime M( 757 ) is not prime M( 761 ) is not prime M( 769 ) is not prime M( 773 ) is not prime M( 787 ) is not prime M( 797 ) is not prime M( 809 ) is not prime M( 811 ) is not prime M( 821 ) is not prime M( 823 ) is not prime M( 827 ) is not prime M( 829 ) is not prime M( 839 ) is not prime M( 853 ) is not prime M( 857 ) is not prime M( 859 ) is not prime M( 863 ) is not prime M( 877 ) is not prime M( 881 ) is not prime M( 883 ) is not prime M( 887 ) is not prime M( 907 ) is not prime M( 911 ) is not prime M( 919 ) is not prime M( 929 ) is not prime M( 937 ) is not prime M( 941 ) is not prime M( 947 ) is not prime M( 953 ) is not prime M( 967 ) is not prime M( 971 ) is not prime M( 977 ) is not prime M( 983 ) is not prime M( 991 ) is not prime M( 997 ) is not prime M( 1009 ) is not prime M( 1013 ) is not prime M( 1019 ) is not prime M( 1021 ) is not prime M( 1031 ) is not prime M( 1033 ) is not prime M( 1039 ) is not prime M( 1049 ) is not prime M( 1051 ) is not prime M( 1061 ) is not prime M( 1063 ) is not prime M( 1069 ) is not prime M( 1087 ) is not prime M( 1091 ) is not prime M( 1093 ) is not prime M( 1097 ) is not prime M( 1103 ) is not prime M( 1109 ) is not prime M( 1117 ) is not prime M( 1123 ) is not prime M( 1129 ) is not prime M( 1151 ) is not prime M( 1153 ) is not prime M( 1163 ) is not prime M( 1171 ) is not prime M( 1181 ) is not prime M( 1187 ) is not prime M( 1193 ) is not prime M( 1201 ) is not prime M( 1213 ) is not prime M( 1217 ) is not prime M( 1223 ) is not prime M( 1229 ) is not prime M( 1231 ) is not prime M( 1237 ) is not prime M( 1249 ) is not prime M( 1259 ) is not prime M( 1277 ) is not prime M( 1279 )= 104079321946643990819252403273640855386152622472667048053191123504036080596733\ 60298012239441732324184842421613954281007791383566248323464908139906605677320762924129509\ 38922034577318334966158355047295942054768981121169367714754847886696250138443826029173234\ 88853111608285384165850282556046662248318909188018470682222031405210266984354887329580288\ 78050869736186900714720710555703168729087 is prime M( 1283 ) is not prime M( 1289 ) is not prime M( 1291 ) is not prime M( 1297 ) is not prime M( 1301 ) is not prime M( 1303 ) is not prime M( 1307 ) is not prime M( 1319 ) is not prime M( 1321 ) is not prime M( 1327 ) is not prime M( 1361 ) is not prime M( 1367 ) is not prime M( 1373 ) is not prime M( 1381 ) is not prime M( 1399 ) is not prime M( 1409 ) is not prime M( 1423 ) is not prime M( 1427 ) is not prime M( 1429 ) is not prime M( 1433 ) is not prime M( 1439 ) is not prime M( 1447 ) is not prime M( 1451 ) is not prime M( 1453 ) is not prime M( 1459 ) is not prime M( 1471 ) is not prime M( 1481 ) is not prime M( 1483 ) is not prime M( 1487 ) is not prime M( 1489 ) is not prime M( 1493 ) is not prime M( 1499 ) is not prime M( 1511 ) is not prime M( 1523 ) is not prime M( 1531 ) is not prime M( 1543 ) is not prime M( 1549 ) is not prime M( 1553 ) is not prime M( 1559 ) is not prime M( 1567 ) is not prime M( 1571 ) is not prime M( 1579 ) is not prime M( 1583 ) is not prime M( 1597 ) is not prime M( 1601 ) is not prime M( 1607 ) is not prime M( 1609 ) is not prime M( 1613 ) is not prime M( 1619 ) is not prime M( 1621 ) is not prime M( 1627 ) is not prime M( 1637 ) is not prime M( 1657 ) is not prime M( 1663 ) is not prime M( 1667 ) is not prime M( 1669 ) is not prime M( 1693 ) is not prime M( 1697 ) is not prime M( 1699 ) is not prime M( 1709 ) is not prime M( 1721 ) is not prime M( 1723 ) is not prime M( 1733 ) is not prime M( 1741 ) is not prime M( 1747 ) is not prime M( 1753 ) is not prime M( 1759 ) is not prime M( 1777 ) is not prime M( 1783 ) is not prime M( 1787 ) is not prime M( 1789 ) is not prime M( 1801 ) is not prime M( 1811 ) is not prime M( 1823 ) is not prime M( 1831 ) is not prime M( 1847 ) is not prime M( 1861 ) is not prime M( 1867 ) is not prime M( 1871 ) is not prime M( 1873 ) is not prime M( 1877 ) is not prime M( 1879 ) is not prime M( 1889 ) is not prime M( 1901 ) is not prime M( 1907 ) is not prime M( 1913 ) is not prime M( 1931 ) is not prime M( 1933 ) is not prime M( 1949 ) is not prime M( 1951 ) is not prime M( 1973 ) is not prime M( 1979 ) is not prime M( 1987 ) is not prime M( 1993 ) is not prime M( 1997 ) is not prime M( 1999 ) is not prime M( 2003 ) is not prime M( 2011 ) is not prime M( 2017 ) is not prime M( 2027 ) is not prime M( 2029 ) is not prime M( 2039 ) is not prime M( 2053 ) is not prime M( 2063 ) is not prime M( 2069 ) is not prime M( 2081 ) is not prime M( 2083 ) is not prime M( 2087 ) is not prime M( 2089 ) is not prime M( 2099 ) is not prime M( 2111 ) is not prime M( 2113 ) is not prime M( 2129 ) is not prime M( 2131 ) is not prime M( 2137 ) is not prime M( 2141 ) is not prime M( 2143 ) is not prime M( 2153 ) is not prime M( 2161 ) is not prime M( 2179 ) is not prime M( 2203 )= 147597991521418023508489862273738173631206614533316977514777121647857029787807\ 89493774073370493892893827485075314964804772812648387602591918144633653302695404969612011\ 13430156902396093989090226259326935025281409614983499388222831448598601834318536230923772\ 64139020949023183644689960821079548296376309423663094541083279376990539998245718632294472\ 96364188906233721717237421056364403682184596496329485386969058726504869144346374575072804\ 41823676813517852099348660847172579408422316678097670224011990280170474894487426924742108\ 82353680848507250224051945258754287534997655857267022963396257521263747789778550155264652\ 2609988869914013540483809865681250419497686697771007 is prime M( 2207 ) is not prime M( 2213 ) is not prime M( 2221 ) is not prime M( 2237 ) is not prime M( 2239 ) is not prime M( 2243 ) is not prime M( 2251 ) is not prime M( 2267 ) is not prime M( 2269 ) is not prime M( 2273 ) is not prime M( 2281 )= 446087557183758429571151706402101809886208632412859901111991219963404685792820\ 47336911254526900398902615324593112431670239575870569367936479090349746114707106525419335\ 39381249782263079473124107988748690400702793284288103117548441080948782524948667609695869\ 98128982645877596028979171536962503068429617331702184750324583009171832104916050157628886\ 60637214550170222592512522407682960542717357396481299525056941248072073847685529368166671\ 28448311908776206067866638621902401185707368319018864792258104147140789353865624979681787\ 29127629594924411960961386713946279899275006954917139758796061223803393537381034666494402\ 951052059047968693255388647930440925104186817009640171764133172418132836351 is prime M( 2287 ) is not prime M( 2293 ) is not prime M( 2297 ) is not prime M( 2309 ) is not prime M( 2311 ) is not prime M( 2333 ) is not prime M( 2339 ) is not prime M( 2341 ) is not prime M( 2347 ) is not prime M( 2351 ) is not prime M( 2357 ) is not prime M( 2371 ) is not prime M( 2377 ) is not prime M( 2381 ) is not prime M( 2383 ) is not prime M( 2389 ) is not prime M( 2393 ) is not prime M( 2399 ) is not prime M( 2411 ) is not prime M( 2417 ) is not prime M( 2423 ) is not prime M( 2437 ) is not prime M( 2441 ) is not prime M( 2447 ) is not prime M( 2459 ) is not prime M( 2467 ) is not prime M( 2473 ) is not prime M( 2477 ) is not prime M( 2503 ) is not prime M( 2521 ) is not prime M( 2531 ) is not prime M( 2539 ) is not prime M( 2543 ) is not prime M( 2549 ) is not prime M( 2551 ) is not prime M( 2557 ) is not prime M( 2579 ) is not prime M( 2591 ) is not prime M( 2593 ) is not prime M( 2609 ) is not prime M( 2617 ) is not prime M( 2621 ) is not prime M( 2633 ) is not prime M( 2647 ) is not prime M( 2657 ) is not prime M( 2659 ) is not prime M( 2663 ) is not prime M( 2671 ) is not prime M( 2677 ) is not prime M( 2683 ) is not prime M( 2687 ) is not prime M( 2689 ) is not prime M( 2693 ) is not prime M( 2699 ) is not prime M( 2707 ) is not prime M( 2711 ) is not prime M( 2713 ) is not prime M( 2719 ) is not prime M( 2729 ) is not prime M( 2731 ) is not prime M( 2741 ) is not prime M( 2749 ) is not prime M( 2753 ) is not prime M( 2767 ) is not prime M( 2777 ) is not prime M( 2789 ) is not prime M( 2791 ) is not prime M( 2797 ) is not prime M( 2801 ) is not prime M( 2803 ) is not prime M( 2819 ) is not prime M( 2833 ) is not prime M( 2837 ) is not prime M( 2843 ) is not prime M( 2851 ) is not prime M( 2857 ) is not prime M( 2861 ) is not prime M( 2879 ) is not prime M( 2887 ) is not prime M( 2897 ) is not prime M( 2903 ) is not prime M( 2909 ) is not prime M( 2917 ) is not prime M( 2927 ) is not prime M( 2939 ) is not prime M( 2953 ) is not prime M( 2957 ) is not prime M( 2963 ) is not prime M( 2969 ) is not prime M( 2971 ) is not prime M( 2999 ) is not prime M( 3001 ) is not prime M( 3011 ) is not prime M( 3019 ) is not prime M( 3023 ) is not prime M( 3037 ) is not prime M( 3041 ) is not prime M( 3049 ) is not prime M( 3061 ) is not prime M( 3067 ) is not prime M( 3079 ) is not prime M( 3083 ) is not prime M( 3089 ) is not prime M( 3109 ) is not prime M( 3119 ) is not prime M( 3121 ) is not prime M( 3137 ) is not prime M( 3163 ) is not prime M( 3167 ) is not prime M( 3169 ) is not prime M( 3181 ) is not prime M( 3187 ) is not prime M( 3191 ) is not prime M( 3203 ) is not prime M( 3209 ) is not prime M( 3217 )= 259117086013202627776246767922441530941818887553125427303974923161874019266586\ 36208620120951680048340655069524173319417744168950923880701741037770959751204231306662408\ 29163535179523111861548622656045476911275958487756105687579311910177114088262521538490358\ 30401185072116424747461823031471398340229288074545677907941037288235820705892351068433882\ 98688861665865028092769208033960586930879050040950370987590211901837199162099400256893511\ 31365488297391126567973032419865172501164127035097054277734779723498216764434466683831193\ 22540099648994051790241624056519054483690809616061625743042361721863339415852426431208737\ 26659196206175353574889289459962919518308262186085340093793283942026186658614250325145077\ 30962742353768229386494071277008460771242118230808041392980870575047138252645714483793711\ 25032081826126566649084251699453951887789613650248405739378594599444335231188280123660406\ 26246860921215034993758478229223714433962885848593821573882123239368704616067736290931507\ 1 is prime M( 3221 ) is not prime M( 3229 ) is not prime M( 3251 ) is not prime M( 3253 ) is not prime M( 3257 ) is not prime M( 3259 ) is not prime M( 3271 ) is not prime M( 3299 ) is not prime M( 3301 ) is not prime M( 3307 ) is not prime M( 3313 ) is not prime M( 3319 ) is not prime M( 3323 ) is not prime M( 3329 ) is not prime M( 3331 ) is not prime M( 3343 ) is not prime M( 3347 ) is not prime M( 3359 ) is not prime M( 3361 ) is not prime M( 3371 ) is not prime M( 3373 ) is not prime M( 3389 ) is not prime M( 3391 ) is not prime M( 3407 ) is not prime M( 3413 ) is not prime M( 3433 ) is not prime M( 3449 ) is not prime M( 3457 ) is not prime M( 3461 ) is not prime M( 3463 ) is not prime M( 3467 ) is not prime M( 3469 ) is not prime M( 3491 ) is not prime M( 3499 ) is not prime M( 3511 ) is not prime M( 3517 ) is not prime M( 3527 ) is not prime M( 3529 ) is not prime M( 3533 ) is not prime M( 3539 ) is not prime M( 3541 ) is not prime M( 3547 ) is not prime M( 3557 ) is not prime M( 3559 ) is not prime M( 3571 ) is not prime M( 3581 ) is not prime M( 3583 ) is not prime M( 3593 ) is not prime M( 3607 ) is not prime M( 3613 ) is not prime M( 3617 ) is not prime M( 3623 ) is not prime M( 3631 ) is not prime M( 3637 ) is not prime M( 3643 ) is not prime M( 3659 ) is not prime M( 3671 ) is not prime M( 3673 ) is not prime M( 3677 ) is not prime M( 3691 ) is not prime M( 3697 ) is not prime M( 3701 ) is not prime M( 3709 ) is not prime M( 3719 ) is not prime M( 3727 ) is not prime M( 3733 ) is not prime M( 3739 ) is not prime M( 3761 ) is not prime M( 3767 ) is not prime M( 3769 ) is not prime M( 3779 ) is not prime M( 3793 ) is not prime M( 3797 ) is not prime M( 3803 ) is not prime M( 3821 ) is not prime M( 3823 ) is not prime M( 3833 ) is not prime M( 3847 ) is not prime M( 3851 ) is not prime M( 3853 ) is not prime M( 3863 ) is not prime M( 3877 ) is not prime M( 3881 ) is not prime M( 3889 ) is not prime M( 3907 ) is not prime M( 3911 ) is not prime M( 3917 ) is not prime M( 3919 ) is not prime M( 3923 ) is not prime M( 3929 ) is not prime M( 3931 ) is not prime M( 3943 ) is not prime M( 3947 ) is not prime M( 3967 ) is not prime M( 3989 ) is not prime M( 4001 ) is not prime M( 4003 ) is not prime M( 4007 ) is not prime M( 4013 ) is not prime M( 4019 ) is not prime M( 4021 ) is not prime M( 4027 ) is not prime M( 4049 ) is not prime M( 4051 ) is not prime M( 4057 ) is not prime M( 4073 ) is not prime M( 4079 ) is not prime M( 4091 ) is not prime M( 4093 ) is not prime M( 4099 ) is not prime M( 4111 ) is not prime M( 4127 ) is not prime M( 4129 ) is not prime M( 4133 ) is not prime M( 4139 ) is not prime M( 4153 ) is not prime M( 4157 ) is not prime M( 4159 ) is not prime M( 4177 ) is not prime M( 4201 ) is not prime M( 4211 ) is not prime M( 4217 ) is not prime M( 4219 ) is not prime M( 4229 ) is not prime M( 4231 ) is not prime M( 4241 ) is not prime M( 4243 ) is not prime M( 4253 )= 190797007524439073807468042969529173669356994749940177394741882673528979787005\ 05370636804983551490024430349595495070972576218631122414882881192021690454220696074466616\ 93642211952895384368453902501686639328388051920551371543909126665275330073092926875390922\ 57043362517857366624699975402375462954490293259233303137330643531556539739921926201438606\ 43902007517472302905683827250505157196759460835006340449597766065626902082396082556701234\ 41899089279566460119980579885486301076373809935198265823897818881357054086530452196558017\ 58081251164080554609057468028203308718724654081055323215860189611391296030471108443146745\ 67196776630892585854727150731156376517100831824864711009761489031356285654178415488174314\ 60339096027379473850553559603318556145409000814563786590683703172676969800011877509954910\ 90350108417050917991562167972281070161305972518044872048331306383715094854938415738549894\ 60607072258473797817668642213435452698944302835364403718737538539783825951183316641613432\ 36956603676768977222879187734209689823260890261500315154241654621113375274311548906663273\ 74921446276833564519776797633875503548665093914556482031482248883127023777039667707976559\ 85733335701372734207909906440045574183065432037935083323624581934882406478358569292488102\ 1978332974949906122664421376034687815350484991 is prime M( 4259 ) is not prime M( 4261 ) is not prime M( 4271 ) is not prime M( 4273 ) is not prime M( 4283 ) is not prime M( 4289 ) is not prime M( 4297 ) is not prime M( 4327 ) is not prime M( 4337 ) is not prime M( 4339 ) is not prime M( 4349 ) is not prime M( 4357 ) is not prime M( 4363 ) is not prime M( 4373 ) is not prime M( 4391 ) is not prime M( 4397 ) is not prime M( 4409 ) is not prime M( 4421 ) is not prime M( 4423 )= 285542542228279613901563566102164008326164238644702889199247456602284400390600\ 65387595457150553984323975451391589615029787839937705607143516974722110798879119820098847\ 75313392142827720160590099045866862549890848157354224804090223442975883525260043838906326\ 16124076317387416881148592486188361873904175783145696016919574390765598280188599035578448\ 59107768367717552043407428772657800626675961597075952132782855566278167838569158184443644\ 48125115624281367424904593632128101802760960881114010033775703635457251209240736469215767\ 97146199387619296560302680261790118132925012323046444438622308877924609373773012481681672\ 42449367447448853777015578300688085264816151306714481479028836666406225727466527578712737\ 46492310963750011709018907862633246195787957314256938050730561196775803380843333819875009\ 02968831935913095269821311141322393356490178488728982288156282600813831296143663845945431\ 14404375382154287127774560644785856415921332844358020642271469491309176271644704168967807\ 00967735904298089096167504529272580008435003448316282970899027286499819943876472345742762\ 63729694848304750917174186181130688518792748622612293341368928056634384466646326572476167\ 27566083910565052897571389932021112149579531142794625455330538706782106760176875097786610\ 04600146021384084480212250536890547937420030957220967329547507217181155318713102310579026\ 08580607 is prime M( 4441 ) is not prime M( 4447 ) is not prime M( 4451 ) is not prime M( 4457 ) is not prime M( 4463 ) is not prime M( 4481 ) is not prime M( 4483 ) is not prime M( 4493 ) is not prime M( 4507 ) is not prime M( 4513 ) is not prime M( 4517 ) is not prime M( 4519 ) is not prime M( 4523 ) is not prime M( 4547 ) is not prime M( 4549 ) is not prime M( 4561 ) is not prime M( 4567 ) is not prime M( 4583 ) is not prime M( 4591 ) is not prime M( 4597 ) is not prime M( 4603 ) is not prime M( 4621 ) is not prime M( 4637 ) is not prime M( 4639 ) is not prime M( 4643 ) is not prime M( 4649 ) is not prime M( 4651 ) is not prime M( 4657 ) is not prime M( 4663 ) is not prime M( 4673 ) is not prime M( 4679 ) is not prime M( 4691 ) is not prime M( 4703 ) is not prime M( 4721 ) is not prime M( 4723 ) is not prime M( 4729 ) is not prime M( 4733 ) is not prime M( 4751 ) is not prime M( 4759 ) is not prime M( 4783 ) is not prime M( 4787 ) is not prime M( 4789 ) is not prime M( 4793 ) is not prime M( 4799 ) is not prime M( 4801 ) is not prime M( 4813 ) is not prime M( 4817 ) is not prime M( 4831 ) is not prime M( 4861 ) is not prime M( 4871 ) is not prime M( 4877 ) is not prime M( 4889 ) is not prime M( 4903 ) is not prime M( 4909 ) is not prime M( 4919 ) is not prime M( 4931 ) is not prime M( 4933 ) is not prime M( 4937 ) is not prime M( 4943 ) is not prime M( 4951 ) is not prime M( 4957 ) is not prime M( 4967 ) is not prime M( 4969 ) is not prime M( 4973 ) is not prime M( 4987 ) is not prime M( 4993 ) is not prime M( 4999 ) is not prime M( 5003 ) is not prime M( 5009 ) is not prime M( 5011 ) is not prime M( 5021 ) is not prime M( 5023 ) is not prime M( 5039 ) is not prime M( 5051 ) is not prime M( 5059 ) is not prime M( 5077 ) is not prime M( 5081 ) is not prime M( 5087 ) is not prime M( 5099 ) is not prime M( 5101 ) is not prime M( 5107 ) is not prime M( 5113 ) is not prime M( 5119 ) is not prime M( 5147 ) is not prime M( 5153 ) is not prime M( 5167 ) is not prime M( 5171 ) is not prime M( 5179 ) is not prime M( 5189 ) is not prime M( 5197 ) is not prime M( 5209 ) is not prime M( 5227 ) is not prime M( 5231 ) is not prime M( 5233 ) is not prime M( 5237 ) is not prime M( 5261 ) is not prime M( 5273 ) is not prime M( 5279 ) is not prime M( 5281 ) is not prime M( 5297 ) is not prime M( 5303 ) is not prime M( 5309 ) is not prime M( 5323 ) is not prime M( 5333 ) is not prime M( 5347 ) is not prime M( 5351 ) is not prime M( 5381 ) is not prime M( 5387 ) is not prime M( 5393 ) is not prime M( 5399 ) is not prime M( 5407 ) is not prime M( 5413 ) is not prime M( 5417 ) is not prime M( 5419 ) is not prime M( 5431 ) is not prime M( 5437 ) is not prime M( 5441 ) is not prime M( 5443 ) is not prime M( 5449 ) is not prime M( 5471 ) is not prime M( 5477 ) is not prime M( 5479 ) is not prime M( 5483 ) is not prime M( 5501 ) is not prime M( 5503 ) is not prime M( 5507 ) is not prime M( 5519 ) is not prime M( 5521 ) is not prime M( 5527 ) is not prime M( 5531 ) is not prime M( 5557 ) is not prime M( 5563 ) is not prime M( 5569 ) is not prime M( 5573 ) is not prime M( 5581 ) is not prime M( 5591 ) is not prime M( 5623 ) is not prime M( 5639 ) is not prime M( 5641 ) is not prime M( 5647 ) is not prime M( 5651 ) is not prime M( 5653 ) is not prime M( 5657 ) is not prime M( 5659 ) is not prime M( 5669 ) is not prime M( 5683 ) is not prime M( 5689 ) is not prime M( 5693 ) is not prime M( 5701 ) is not prime M( 5711 ) is not prime M( 5717 ) is not prime M( 5737 ) is not prime M( 5741 ) is not prime M( 5743 ) is not prime M( 5749 ) is not prime M( 5779 ) is not prime M( 5783 ) is not prime M( 5791 ) is not prime M( 5801 ) is not prime M( 5807 ) is not prime M( 5813 ) is not prime M( 5821 ) is not prime M( 5827 ) is not prime M( 5839 ) is not prime M( 5843 ) is not prime M( 5849 ) is not prime M( 5851 ) is not prime M( 5857 ) is not prime M( 5861 ) is not prime M( 5867 ) is not prime M( 5869 ) is not prime M( 5879 ) is not prime M( 5881 ) is not prime M( 5897 ) is not prime M( 5903 ) is not prime M( 5923 ) is not prime M( 5927 ) is not prime M( 5939 ) is not prime M( 5953 ) is not prime M( 5981 ) is not prime M( 5987 ) is not prime M( 6007 ) is not prime M( 6011 ) is not prime M( 6029 ) is not prime M( 6037 ) is not prime M( 6043 ) is not prime M( 6047 ) is not prime M( 6053 ) is not prime M( 6067 ) is not prime M( 6073 ) is not prime M( 6079 ) is not prime M( 6089 ) is not prime M( 6091 ) is not prime M( 6101 ) is not prime M( 6113 ) is not prime M( 6121 ) is not prime M( 6131 ) is not prime M( 6133 ) is not prime M( 6143 ) is not prime M( 6151 ) is not prime M( 6163 ) is not prime M( 6173 ) is not prime M( 6197 ) is not prime M( 6199 ) is not prime M( 6203 ) is not prime M( 6211 ) is not prime M( 6217 ) is not prime M( 6221 ) is not prime M( 6229 ) is not prime M( 6247 ) is not prime M( 6257 ) is not prime M( 6263 ) is not prime M( 6269 ) is not prime M( 6271 ) is not prime M( 6277 ) is not prime M( 6287 ) is not prime M( 6299 ) is not prime M( 6301 ) is not prime M( 6311 ) is not prime M( 6317 ) is not prime M( 6323 ) is not prime M( 6329 ) is not prime M( 6337 ) is not prime M( 6343 ) is not prime M( 6353 ) is not prime M( 6359 ) is not prime M( 6361 ) is not prime M( 6367 ) is not prime M( 6373 ) is not prime M( 6379 ) is not prime M( 6389 ) is not prime M( 6397 ) is not prime M( 6421 ) is not prime M( 6427 ) is not prime M( 6449 ) is not prime M( 6451 ) is not prime M( 6469 ) is not prime M( 6473 ) is not prime M( 6481 ) is not prime M( 6491 ) is not prime M( 6521 ) is not prime M( 6529 ) is not prime M( 6547 ) is not prime M( 6551 ) is not prime M( 6553 ) is not prime M( 6563 ) is not prime M( 6569 ) is not prime M( 6571 ) is not prime M( 6577 ) is not prime M( 6581 ) is not prime M( 6599 ) is not prime M( 6607 ) is not prime M( 6619 ) is not prime M( 6637 ) is not prime M( 6653 ) is not prime M( 6659 ) is not prime M( 6661 ) is not prime M( 6673 ) is not prime M( 6679 ) is not prime M( 6689 ) is not prime M( 6691 ) is not prime M( 6701 ) is not prime M( 6703 ) is not prime M( 6709 ) is not prime M( 6719 ) is not prime M( 6733 ) is not prime M( 6737 ) is not prime M( 6761 ) is not prime M( 6763 ) is not prime M( 6779 ) is not prime M( 6781 ) is not prime M( 6791 ) is not prime M( 6793 ) is not prime M( 6803 ) is not prime M( 6823 ) is not prime M( 6827 ) is not prime M( 6829 ) is not prime M( 6833 ) is not prime M( 6841 ) is not prime M( 6857 ) is not prime M( 6863 ) is not prime M( 6869 ) is not prime M( 6871 ) is not prime M( 6883 ) is not prime M( 6899 ) is not prime M( 6907 ) is not prime M( 6911 ) is not prime M( 6917 ) is not prime M( 6947 ) is not prime M( 6949 ) is not prime M( 6959 ) is not prime M( 6961 ) is not prime M( 6967 ) is not prime M( 6971 ) is not prime M( 6977 ) is not prime M( 6983 ) is not prime M( 6991 ) is not prime M( 6997 ) is not prime M( 7001 ) is not prime M( 7013 ) is not prime M( 7019 ) is not prime M( 7027 ) is not prime M( 7039 ) is not prime M( 7043 ) is not prime M( 7057 ) is not prime M( 7069 ) is not prime M( 7079 ) is not prime M( 7103 ) is not prime M( 7109 ) is not prime M( 7121 ) is not prime M( 7127 ) is not prime M( 7129 ) is not prime M( 7151 ) is not prime M( 7159 ) is not prime M( 7177 ) is not prime M( 7187 ) is not prime M( 7193 ) is not prime M( 7207 ) is not prime M( 7211 ) is not prime M( 7213 ) is not prime M( 7219 ) is not prime M( 7229 ) is not prime M( 7237 ) is not prime M( 7243 ) is not prime M( 7247 ) is not prime M( 7253 ) is not prime M( 7283 ) is not prime M( 7297 ) is not prime M( 7307 ) is not prime M( 7309 ) is not prime M( 7321 ) is not prime M( 7331 ) is not prime M( 7333 ) is not prime M( 7349 ) is not prime M( 7351 ) is not prime M( 7369 ) is not prime M( 7393 ) is not prime M( 7411 ) is not prime M( 7417 ) is not prime M( 7433 ) is not prime M( 7451 ) is not prime M( 7457 ) is not prime M( 7459 ) is not prime M( 7477 ) is not prime M( 7481 ) is not prime M( 7487 ) is not prime M( 7489 ) is not prime M( 7499 ) is not prime M( 7507 ) is not prime M( 7517 ) is not prime M( 7523 ) is not prime M( 7529 ) is not prime M( 7537 ) is not prime M( 7541 ) is not prime M( 7547 ) is not prime M( 7549 ) is not prime M( 7559 ) is not prime M( 7561 ) is not prime M( 7573 ) is not prime M( 7577 ) is not prime M( 7583 ) is not prime M( 7589 ) is not prime M( 7591 ) is not prime M( 7603 ) is not prime M( 7607 ) is not prime M( 7621 ) is not prime M( 7639 ) is not prime M( 7643 ) is not prime M( 7649 ) is not prime M( 7669 ) is not prime M( 7673 ) is not prime M( 7681 ) is not prime M( 7687 ) is not prime M( 7691 ) is not prime M( 7699 ) is not prime M( 7703 ) is not prime M( 7717 ) is not prime M( 7723 ) is not prime M( 7727 ) is not prime M( 7741 ) is not prime M( 7753 ) is not prime M( 7757 ) is not prime M( 7759 ) is not prime M( 7789 ) is not prime M( 7793 ) is not prime M( 7817 ) is not prime M( 7823 ) is not prime M( 7829 ) is not prime M( 7841 ) is not prime M( 7853 ) is not prime M( 7867 ) is not prime M( 7873 ) is not prime M( 7877 ) is not prime M( 7879 ) is not prime M( 7883 ) is not prime M( 7901 ) is not prime M( 7907 ) is not prime M( 7919 ) is not prime M( 7927 ) is not prime > > /* That was not so fast -- but at least it did it! > It found 20 of the 47 known Mersenne primes. */ > exit;