HP 50g: Programming Problem: Integer Partition in Palindromic Integers
01-26-2018, 03:50 PM (This post was last modified: 02-07-2018 05:36 PM by Gerald H.)
Post: #1
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
HP 50g: Programming Problem: Integer Partition in Palindromic Integers
Every integer can be written as the sum of palindromic integers, eg

542 = 535 + 7

& in fact 49 palindromes are sufficient to express any integer, as proven here

https://arxiv.org/pdf/1508.04721.pdf

The task I'm interested in is producing a stand alone User RPL programme for the 50g that will decompose any positive integer into a sum of palindromes, the fewer the better.

For example the number

407374883553280653444058251937

can be decomposed in 120 palindromes:

Code:
:120:{ 99999999999999999999999999999 99999999999999999999999999999 99999999999999999999999999999 99999999999999999999999999999 999999999999999999999999999 999999999999999999999999999 999999999999999999999999999 999999999999999999999999999 999999999999999999999999999 999999999999999999999999999 999999999999999999999999999 99999999999999999999999999 99999999999999999999999999 99999999999999999999999999 9999999999999999999999999 9999999999999999999999999 9999999999999999999999999 9999999999999999999999999 9999999999999999999999999 9999999999999999999999999 9999999999999999999999999 999999999999999999999999 999999999999999999999999 999999999999999999999999 999999999999999999999999 99999999999999999999999 99999999999999999999999 99999999999999999999999 99999999999999999999999 99999999999999999999999 99999999999999999999999 99999999999999999999999 99999999999999999999999 9999999999999999999999 9999999999999999999999 9999999999999999999999 9999999999999999999999 9999999999999999999999 9999999999999999999999 9999999999999999999999 9999999999999999999999 999999999999999999999 999999999999999999999 999999999999999999999 99999999999999999999 99999999999999999999 99999999999999999999 99999999999999999999 99999999999999999999 9999999999999999999 9999999999999999999 9999999999999999999 9999999999999999999 9999999999999999999 999999999999999999 999999999999999999 999999999999999999 99999999999999999 99999999999999999 9999999999999999 9999999999999999 9999999999999999 9999999999999999 9999999999999999 9999999999999999 9999999999999999 9999999999999999 99999999999999 99999999999999 99999999999999 99999999999999 99999999999999 99999999999999 9999999999999 9999999999999 9999999999999 9999999999999 9999999999999 999999999999 999999999999 999999999999 99999999999 99999999999 99999999999 99999999999 9999999999 9999999999 9999999999 9999999999 999999999 999999999 999999999 999999999 9999999 9999999 9999999 9999999 9999999 999999 999999 999999 999999 999999 999999 999999 999999 99999 99999 9999 9999 9999 9999 9999 999 999 22 11 9 9 1 }

& in 6

Code:
:6:{ 407374883553280082355388473704 571088666880175 2897982 66 9 1 }

& in 5

Code:
:5:{ 407374883553280082355388473704 571088646880175 22888822 9229 7 }

which may be minimal.

The programme should produce a list ordered by decreasing magnitude & tagged with the number of elements.

Smaller & faster programmes are desirable but the critical characteristic is lowest number of elements in the decomposition.

As a standard test for the programme I suggest input of

13^1313

a 1,463 digit integer, correct decompositions being the target & least number of elements deciding the winner.
02-01-2018, 11:20 AM (This post was last modified: 02-07-2018 05:38 PM by Gerald H.)
Post: #2
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
Edited to "39g programme" from "38G programme" - sorry for the error.

Well, not much progress made on this, unless members are keeping their solutions secret.

Meanwhile I have produced a complete solution for the 39g, although I do not claim that the partitions share the characteristic of having a minimum number of elements in the respective palindromic partition.

The 39g programme has one sub programme, N2DS, which for natural number input Ans produces a list of digits in list L2, eg for input

23405

L2 will contain

{5,0,4,3,2}

which may in itself be useful.

Code:
N2DS Ans►T: CLRVAR L2: FOR I=1 TO INT(LOG(T)+1) STEP 1;  T MOD 10: CONCAT(L2,{Ans})►L2: INT(T/10)►T: END:

The main programme, P24U, which for natural number input Ans produces a list of the palindromic partition members in descending order in list L1. eg For input

987654321678

L1 will contain

Code:
{899999999998,79999999997,6999999996,599999995,49999994,3999993,299992,19991,999​,595,66,9,8,8,7,6,5,5,4,4,3,2,1}

Code:
P24U Ans►N: IF Ans<10 THEN {N}►L1: ELSE N: RUN N2DS: {L2(1)}►L1: SUB L2;L2;2;12: FOR I=1 TO SIZE(L2) STEP 1;  L2(I): Ans►H: IF H THEN  IF H>1 THEN 11-H: END: CONCAT(L1,{Ans,10^I*H-Ans})►L1: END: END: END: REVERSE(SORT(L1))►L1:

As the 39g is limited to 12 digit integers, the above programme solves the problem completely on that machine.

However, as the algorithm produces two elements of the partition for each digit, the method becomes impractical on the 49G for , say, 6,000 digit numbers.

I again encourage members to apply themselves to this interesting, if unimportant, problem.
02-02-2018, 08:21 AM (This post was last modified: 02-02-2018 08:23 AM by Gerald H.)
Post: #3
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
A slightly modified version of the programme to remove the occurrence of 0 in the partition if the input ends in 0:

Code:
P24U Ans►N: IF Ans<10 THEN {N}►L1: ELSE N: RUN N2DS: L2(1): IF Ans THEN {Ans}►L1: ELSE CLRVAR L1: END: SUB L2;L2;2;12: FOR I=1 TO SIZE(L2) STEP 1;  L2(I): Ans►H: IF H THEN  IF H>1 THEN 11-H: END: CONCAT(L1,{Ans,10^I*H-Ans})►L1: END: END: END: REVERSE(SORT(L1))►L1:
02-04-2018, 08:13 AM
Post: #4
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
Here a corrected version for the 38G:

Code:
N2DS  Ans►T:  SYSEVAL 532278:  FOR I=1 TO INT(LOG(T)+1) STEP 1;   T MOD 10:  CONCAT(L2,{Ans})►L2:  INT(T/10)►T:  END: P24U Ans►N:  IF Ans<10  THEN  {N}►L1:  ELSE  N:  RUN N2DS:  L2(1):  IF Ans  THEN  {Ans}►L1:  ELSE  SYSEVAL 532268:  END:  SUB L2;L2;2;12:  FOR I=1 TO SIZE(L2) STEP 1;   L2(I):  Ans►H:  IF H  THEN   IF H>1  THEN  11-H:  END:  CONCAT(L1,{Ans,10^I*H-Ans})►L1:  END:  END:  END:  REVERSE(SORT(L1))►L1:
02-05-2018, 12:22 AM
Post: #5
 Juan14 Junior Member Posts: 43 Joined: Jan 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
This program returns the Palindromic Integers of an integer's partition to the stack. The idea is simple, but the program got somehow complicated.

«
WHILE DUP 10 >
REPEAT
DUP →STR DUPDUP SIZE 2 / SWAP 1 PICK3 SUB
DUPDUP 1 5 PICK FLOOR SUB SREV +
4 ROLL OVER <
{ DROP DUP OBJ→ 1 - →STR DUP ROT SIZE SWAP SIZE
‹ -.5 * ROT + OVER 1 ROT FLOOR SUB SREV + }
{ NIP NIP } IFTE OBJ→ SWAP OVER -
END DUP 10 == { DROP 9 1} IFT
»
02-05-2018, 06:03 AM (This post was last modified: 02-05-2018 06:06 AM by Gerald H.)
Post: #6
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
Very nice & short, Juan14, well done!

& the number of elements in the partition is at most log2(SIZE(N)), so a 6,000 digit number requires about 12 palindromes, sadly the programme does not work correctly for all 6,000 digit numbers.
02-05-2018, 06:22 AM (This post was last modified: 02-07-2018 05:25 PM by Gerald H.)
Post: #7
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
Your programme, Juan14, works correctly for 13^1313 but not for the 6,000 digit number

Code:
66819812547829415891036658681554804646616447872786255582670445570441888684723605​37990161080037565173402270071938432190286569709763738744557271968431167063750521​99239667522851896442043515465907397273648461935739704478199943218426705969942235​25740174471472002273784701616658049223339713196911691728830614047238319875257799​06927001984972363301563539250762188073770307637244493637806753993651911674761695​82818053343351137655276699778055322226035412321402822796233524437885844787133529​91147765362332740290274155213082384514236152483143026435674898834325099868866916​12633449726668597230030398230151963598133293396900777806176568418509403449193340​19421035083624243355546620757187435600466389666990363417499401360899828287607335​66972644035387518709656102691447398398353476182673507204535879031564649163693615​28569190170545781178264691349090028006126332563280672564667369362381975855495660​08406917733980492004752909340316527394417311071086756506579045704238946939409788​31239249156149562503858550781873650677737810834802133493523646677269680950552489​32296349232841070705965424919686511926956962495244036507553134397887280534476562​94952816412454117636015843597566697158474977436106830825672580482395909146817031​00110831140207751603680211502426446160424124250928773042548332953377957449465176​68912998763319339017726458619835798368182271308069240037145462182225638087058042​21009511110330306812204844221558747846243269750021472775798982630622906376248313​68367560958765015286045563071634404947250321323752527932781797867527779873064687​78959853075505447282229886088642765660246966343190195839660087327381147164259195​24707516927735083438439217030892775252006139144190437583838609457355057812415897​35184406007410603584742818200084759938362868141975843529502272530182850223818752​32225227477144666220810954728014682216679811841106299037313911712375775073291919​37197273663088873296701640062546882138496337487179941654001888791324033168251061​00444137417265280787450264226333421613796503826715248335363653590271743728104310​52571093557419235037957338427036679528894202730437454705403251378609460059563228​99257844329271673089919157421732978253815984880718473138186583017267153585000799​27213913030527043931654613949686767291399783405914327366431620909389859731561710​18563816762171024602272722027605913819286537671212664876610718791637865583834109​37042288004727311791273435353384053585786992253382341007285157441257411847716724​04332299484384048342377173309145551884197177803169227724688203634759475304280139​27194732343563933052069602897836657125798871716991162216708646556901586329646657​90415576797550618555464794929668107690428755575626138835308735087403117312342389​02006433421138143839879826404214448861237712154993477655416771736985482394918164​34851712996321761266805107646626984628842634945711572704746572291114656988027789​08100791511078017956691541039179139452438174957207712983944369444216250680499673​78143747288697406697660755703734252852554099601826604063234356174332781687742604​41447001923824910242288800216070084613395546188947051354555843296044366038679491​12268995253280945946965183763539240822981395209769042278160297503459623857954997​43827457321943983827089827827510337337006852159856994315143237998796357582786824​86213882702112449987523406225075944501088600104948566941200380830899667823221879​32345658490540842132185015720327330489402451600874267735783839914235350768250475​21693028934705554975401275193631717516808494337684339856551604188748749379754543​31050081841424198501463847165627978278281027418856590032767650355388709869363627​39242439685843597623432632113926240909222331070988423051888529004872317341139995​86555264566962365137113936182844779409817578196401885702522886673402801168978423​98956571608266727989108498865831210004184589947222894490353251490798609601044276​19669632385622100919625266370104505566176838390754219015790739098526318985994394​84565573444116274207475688813520169585179186708335343831244855543445985759272780​69673576576091715142427898944604848507258200457998289241209216995838464734855387​34390733701050516875854392464583582926829715770830117414058391741199453983916626​12223651067975349547431333324356226676602896998967970897425930847005461342759401​04125987019036394166594420674031051387131279392470283577691645410805261263817078​23829422833230713841130330767101669769134403020880868443213871501318433621437153​14862316763882163715413289415030849351460316855297676107285211144526158147252208​10115687622154273940167357159301983443914390757860648193956828054507064751890933​52576774590489304244342581042736781783076125429266252205339099108289557487905058​59762266620982016543293438315669699830481914129926410233169987396476405634974557​22352891790668312502544393133643699707477665054552182293253904129032007249680373​65655515277713020075690454659662854869478934887814512177491806691725516847474682​20800881078240623984282198933385664323602318582342379939663360751838851423759298​21638317655287621929257384463830468334910295106863156671879310984488101844142288​97505474963545228229885349246796090680562199116116843122516759500394519108956166​88236435379593346080411641319415477900177595465576234443172539398907708914600596​77831533799236139020961600057268534895324963753610261541978842969564667285743979​03473433788873076799027751125533936573975082593790642547653999604512656821832777​55224199261653223350616695351701266690815170085709272237695114468202739207649393​56081756068281358082854193972095694783597890587293845796730501824577476208665649​80285719423037641462394000741879055737257148831233362234814586565665638213561896​20756556008309221776365442189716713275780944891639373854086394820686028702890471​43037488316150177805566723841056441804410089178981680432670268318216786872747984​58712383186117770407509577052033143265018331248173772872997761530908754833918121​92616232335260508751868190613714910754911142403867516548915761643485042598087173​93394618377932786405511863711663968832743312525907544451752293363877545468978802​41578277859436250322859781775347221081614862605278644138005897576544471598504605​

while I would expect it to return

Code:
:12: { 66819812547829415891036658681554804646616447872786255582670445570441888684723605​37990161080037565173402270071938432190286569709763738744557271968431167063750521​99239667522851896442043515465907397273648461935739704478199943218426705969942235​25740174471472002273784701616658049223339713196911691728830614047238319875257799​06927001984972363301563539250762188073770307637244493637806753993651911674761695​82818053343351137655276699778055322226035412321402822796233524437885844787133529​91147765362332740290274155213082384514236152483143026435674898834325099868866916​12633449726668597230030398230151963598133293396900777806176568418509403449193340​19421035083624243355546620757187435600466389666990363417499401360899828287607335​66972644035387518709656102691447398398353476182673507204535879031564649163693615​28569190170545781178264691349090028006126332563280672564667369362381975855495660​08406917733980492004752909340316527394417311071086756506579045704238946939409788​31239249156149562503858550781873650677737810834802133493523646677269680950552489​32296349232841070705965424919686511926956962495244036507553134397887280534476562​94952816412454117636015843597566697158474977436106830825672580482395909146817031​00110831140207751603680211502426446160424124250928773042548332953377957449465176​68912998763319339017726458619835798368182271308069240037145462182225638087058042​21009511110330306812204844221558747846243269750021472775798982630622906376248313​68367560958765015286045563071634404947250321323752527932781797867527779873064687​78959853075505447282229886088642765660246966343190195839660087327381147164259195​24707516927735083438439217030892775252006139144190437583838609457355057812415897​35184406007410603584742818200084759938362868141975843529502272530182850223818752​32225227477144666220810954728014682216679811841106299037313911712375775073291919​37197273663088873296701640062546882138496337487179941654001888791324033168251061​00444137417265280787450264226333421613796503826715248335363653590271743728104310​52571093557419235037957338427036679528894202730437454705403251378609460059563228​99257844329271673089919157421732978253815984880718473138186583017267153585000799​27213913030527043931654613949686767291399783405914327366431620909389859731561710​18563816762171024602272722027605913819286537671212664876610718791637865583834109​37042288004727311791273435353384053585786992253382341007285157441257411847716724​04332299484384048342377173309145551884197177803169227724688203634759475304280139​27194732343563933052069602897836657125798871716991162216708646556901586329646657​90415576797550618555464794929668107690428755575626138835308735087403117312342389​02006433421138143839879826404214448861237712154993477655416771736985482394918164​34851712996321761266805107646626984628842634945711572704746572291114656988027789​08100791511078017956691541039179139452438174957207712983944369444216250680499673​78143747288697406697660755703734252852554099601826604063234356174332781687742604​41447001923824910242288800216070084613388331648007061200888224201942832910074414​40624778618723347165343236040662810699045525825243730755706679660479688274734187​37699408605261244496344938921770275947183425493197193014519665971087011519700180​98772088965641119227564740727511754943624882648962664670150866216712369921715843​46181949328458963717761455677439945121773216884441240462897893834183112433460020​98324321371130478053780353883162657555782409670186692949746455581605579767551409​75664692368510965564680761226119961717889752175663879820696025033936534323749172​93108240357495743630288642772296130877179148815554190337177324384048348499223340​42761774811475214475158270014328335229968758535048335353437219711372740088224073​90143838556873619781701667846621217673568291831950672022727220642017126761836581​01716513795898390902613466372341950438799319276768694931645613934072503031931272​99700058535176271038568183137481708848951835287923712475191998037617292344875299​82236595006490687315230450745473403720249882597663072483375973053291475539017525​01340182734717209535636353384251762830569731612433362246205478708256271473144400​16015286133042319788810045614997178473369483128864526004610769237888036637279173​91919237057757321711931373099260114811897661228641082745901802266644177472252223​25781832205828103527220592534857914186826383995748000281824748530601470060448153​79851421875055375490683838573409144193160025257729803071293483438053772961570742​59195246174118372378006693859109134366964206656724688068892228274450557035895987​78646037897772576879718723972525732312305274940443617036554068251056785906576386​31384267360922603628989757727412005796234264874785512244840221860303301111590012​24085078083652228126454173004296080317228186389753891685462771093391336789921986​67156494475977335923384524037782905242142406164462420511208630615770204113801100​13071864190959328408527652803860163477947485179666579534851063671145421461825949​26567443508278879343135570563044259426965962911568691942456950707014823294369223​98425505908696277664632539433120843801873777605637818705585830526594165194293213​88790493964983240754097560565768017011371449372561304390925740029408933771960480​06659455857918326396376646527608236523362160082009094319646287118754507109196582​51639636194646513097853540270537628167435389389374419620165690781578353044627966​53370678282899806310499471436309966698366400653478175702664555334242638053012491​04339194430490581486567160877700969339233189536915103289303003279586662794433621​61966886899052343889847653462034138425163241548328031255147209204723326356774119​92533178744858873442533269722820412321453062222355087799667255673115334335081828​59616747611915639935760873639444273670307737088126705293536510336327948910072960​99775257891383274041603882719611969131793332294085661610748737220027417447104752​53224996950762481234999187440793753916484637279370956451534024469815822576693299​12505736076113486917275544783736790796568209123483917007220437156573008016109973​50632748688814407554407628555268727874461664640845518685663019851492874521891866​ 72145409399901536676190941015331286050767164421663455759878162194772287643012393​58693845253115224536178429799355832208100612804871668273933074488890574006138982​34266666598013006235720277093460630866438744179373647133075995866549756418955746​37174559859022710495146141872979015060358616370916208187841442356004288738536762​92347164330272728859460800522383347904542336870756357507692162092131046905996102​60846674976469068051486071431696122031335538538947291323293678308593950801656039​12752431927102120716253214521755456144544613419932834785399314398934163011003204​31822554342327147112046208239688419166554379348975548715066195566616851644417984​88196613535503490856669620300610807543500881273305139310820740683101920999233061​62981152722224676260308487814828392076951795311858972371001701179999776255512737​75191139855240841451251644538159540631218486551490894000316890750567603846073622​73514204116313560528575058286934143974808743698156960102782719744819913144478700​83178603352167578332439425469891958378623305055096633330734021803908033182009625​99841583967551678529130329431825107722259620836493493302975862128770935904820323​34138701034448928151616091174247054802271220674996127907245466304757477093657523​36181638292008317898431441610837915648549804759062740261031390973823224375558230​80190251328681613891229707169635609889993501089488882678822472945084162170515830​02915975678730359917277064723851856814655092044144803590156216066330019284907695​01841011359601250645997800565077159949457393073669271672736446372761729663703937​54949951770565008799546052106953110148105967094829100336606126510953084414402905​56418658158327460772719953037876579519200385150712614805492742288762888849801053​99988906536961707922198316186823152091080328555734223283790931301620472609574089​45846519738016144134898713800292836181633257563907747574036645427097216994760221​72208450742471190616151829844430107831433230284095390778212685792033943946380269​52227701528134923031925876155769385148995269002813308093081204370333366905505033​26873859198964524934233875761253306871380078744413199184479172872010696518963478​08479341439682850575825065313611402415372263706483067650570986130004980941556848​12136045951835446152154148042558931191577372155526779999711071001732798581135971​59670293828418784803062676422227251189261603329990291013860470280139315033721880​05345708016003026966658094305535316691884897144461586166655916605178455798439734​55661914886932802640211741723243455228134023001103614398934139935874382399143164​45441654557125412352617021201729134257219306561080593958038763923231927498358355​33130221696134170684150860964679476648062016995096401312902612967057536570786332​45409743383225008064958827272033461743292676358378824006532441487818026190736168​53060510979278141641594017220958955471736475598146579456685995703317463739714478​34668036064390772027532600310895666662432898316004750988844703393728661784082160​01802238553997924871635422511352548396853932103467822774912618789575543661244617​6705068213351014909167663510999390454127 16012945291441243139535549364557866790507625202207627031386168707050969056046853​03857105741355000519200738932506524225249354086931686543262494416306580868029448​66733250045912137970947977414459443699891320402198814454927895213463459502846242​99291441715385388644194407137829005186968620457528345005541875153377809805555209​30027515735555324343761255760155328575068189770898695115020562768033193100960459​26389356134674510524910942514165123711916768985770161125816546389940921768019753​20910648000619182835573412455912796443750558622422858397581498658497282618260534​58536064668227125402529815887096176718921686296741400239857948535013110641306914​72365347985088280348159006700598367771734043600590428342823878112242326426566590​46419352701049704682372617503333057162732864079401072539146409566562462324221187​83282438240950063404371777638950076009518430828805897435632741960314601131053584​97589320041476926861298176716907885189252045217228664606358543506281628279485689​41857938582242268550573446972195542143755382819160008460190235791086712904998364​56185211610775898676191173215614152490194250154764316539836295406900139133086726​50205115968980779818605758235510675521673434235555375157200390255550890877335157​81455005438257540268696815009287317044914468835835171441929924264820595436431259​87294544188912040231989963449544147797490797312195400523376684492086808560361449​42623456861396804539425224256052398370029150005531475017583035864065096905070786​168313072670220252670509766875546394553593134214419254921061 50477380673914498070326694420762536586135190572475815981398314621396045170850399​95472238709016241488648611386608108024207980564521450881094219717784061530917209​70375270956918646202422645629345825398595618225417284091501985031949436286477276​63016994561830630538858760151993666797446057695816310880315135583840126579149585​31112448781559926583254745473678438896010883221171741282147171122388010698834876​37454745238562995518784421113585941975621048385531513088013618596750644797666399​15106785883503603816549961036672774682634949130589105190482714522816595893528543​92654622420264681965907257307902719035160487717912490188054125465089702420801806​68311684688414261090783227459993058071540693126413893189518574275091531685635267​02449662307089441937608377405 25183954023379068365067390842836528919381056208050757683323793053512257330524957​29641483169378824498625739517084983671719707322688585983092965059772116338128505​50812318700966354933354028668204533394536690078132180550582183361127795056929038​95858862237079171763894807159375268944288739613841469275942503375221535039732338​675705080265018391982563824809376056386097332045938152 20553632173046730976091475126559548568572482743598089308694200289418711216878963​76290702330784870332070926736987861211781498200249680398089534728427586584595562​157419067903764037123635502 89720550189303524257654416676974724606366319611691366360642747967661445675242530​398105502798 6314340475355910170964884690710195535740434136 92319595296869259591329 68547674586 83638 5 }
02-05-2018, 10:08 AM (This post was last modified: 02-07-2018 05:26 PM by Gerald H.)
Post: #8
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
Her are some smaller numbers that the programme can't process correctly, it might help with trouble-shooting:

Code:
{ 28797231965151337295810278861025285370157426676557654539106802804548057952546643​95159947306227733420962242654442537228935528546214667263498996080703581986577413​49998407550103516363682116377188020911133096915147901501918528677944460909087718​73853900284460350573999646716528507706347980920664732962866548220852774762888990​93419579999003260507172674530244695719721600447817663652276864782377724154392420​93312974440210050706248026773516950129300343930003444741272348964776051118927678​27139031230385057654904216502353228825243174756979604793034870706654676174437986​73519541920486046332198565765573139001686856103770494215924240655742304014049253​71493909735100745334934503826309777680113529811737129679642828099468532329008265​78795780858896581546464597250022447248785428701172546341371419027931631988307320​47320066904559123014028282752152951213811389779481133326720466738925087299955771​04693009283795426963570900592528671462867398857866396745937254297083951152500746​28634751102914817340003461972577282175915845368383236979251943429126747505613186​30970819990716230530238634096096747034186971255727011859741869611024809650195816​86205604237531051315157574509501552109362635975901390432257885605102429810346359​86582560122837807156515737400008348696771687309192840528075183777334302313290411​89691023892354757709877363982272481141191844329118319619613433964817518043862557​08146234102749631036864948589976410642931852717974575616582803460379825058043725​11359889793846615469188505943707247522206428105320037574842620048129450523155548​34681662344497054828395312568962345916937889011895388998001903446422112017573082​00118983509736852469422476003715354643862651730195619329833388518307279967190086​64097649893561205375502274334247932241338494362115688262346952276848921835312176​16791651312181810795982830743382202430622100452131476603601051669837384602237630​62078676994719212096120498290311175050831186619066437753219587056982752102592285​16021010544572520667453556673281592564019175504218866431792190438299903549895858​54122209362582487310959976769219898067317586116373455735979967212160207498095183​85446834823043967661575825832324073600829681653503962372250088671117183869697797​6532079824129954452154447220992635449147 96769545309409009396141606058800672441376147803138493177388574067745520380036573​84232685399403436769604005726244147403497149011273644008988498331888625874061575​36470288328164939502150192155844008790772107344715231574328820617763653387623491​91823350874877166604331796701148732311111749235910615164335162918637506628577807​28657411777400321960709055097372268456535375556022419637986072441115761040169186​69925964463294919537293787321943769977888945937978223646727111909294566957728336​24046476296152650749655989550951578274939304689400451248586966326789527957619397​35131722438116736898221401259080218806072799950722199010747625012226965988629269​74623037162274804021271107362823416627860063849149103718292957767016531287623476​54314396862933440427003618451072898332895907826235978877327995633327270188277901​02346323783347130652511097540146448372844921453724451213455697713120033664786604​71116295704876405482393610569856147564951759018630992227775735299752100308829791​82725255232270068520260137160316882304725544166883009005286355290193178412460721​90130408892969015149428140712320333655826020314579824772165001134805525226320311​02861027809733916616350711488618843523440715068538572937138583695367913030897379​09168264722382146305944960842036190669661775099517786911855654011213377247015805​84294860170615940557270368534853173282383020441143476603872849645388217059283515​89740084927773027621351787979612434334720794125016724865803454690039789272753505​33792302815951071400381651161450753339659358823659374974155942794192751384238803​71179615648073165694955693415960371989961216992610819899755687285649829119517312​83697687078945090247249601235145100817317431716394484081357675102609708450333826​65317029572753623173963944563508034792733902839249598937421546924359781414947471​71943945704587560066956819297657173310958599075981173175148044616794096367210808​48029837233608978466476179788746840709888413278802716009781979746766555544647271​95099929241517884199082249081805215650847061210837417755231336760051508945189445​36168565671081784369254378889910165005165173969317713877393497637633499782124898​34056842311992520057590450098096575825993406882233831466308901782351345067998873​2480041577058389121954653672983928822292 45838905017052024425525176255628666621143637467220000723839276918937351458595303​39821104967862894108586565796051657475528220814360702884959191726054175777328867​28178861778329825692238185235687831612024647392446956587584173959369299003230496​28795829541585751787848691523000001749959476219567891683182959059281858369997860​90190769563026576896618313984106519640765232007135650927245769777651861677499193​52932549849722587534584937844277129642927543123281142468977892031960707098937313​95358075125180191655386144488052019301902433467885518797562706565385845291318633​80554327417450976621711919888799707697729473848065592821096140602753022253717406​09921446218575485255372004235656829151478054660366461130605228793736056101960290​48333479803637694435988604220695028154443122409194833583837516955473823245760857​10691201139281954323552963678994524775626755094848249529306250964761998375130572​31782193866877069169387567564429157719763328693485492441468754273561767755946137​65665739829255056816356919013746241930661444345474550967863289824494779311059189​84283765265769940110066924874762639011759211828379589163057165510236356763749267​88349650617769346112922539478150993134618932328743516542450044514841319172030714​77978993476825828858411794202710178868733881844635450648185017962745068006720859​82149435863136134552662211876064482144984322002182424676952425763905720522364824​80494277551495214284837241340560143921197355549875294443672427038881300137127780​64104123104366608814546322682846455639329947323976322072818979777726901903795394​36719254043319416635243234564932092842222906101551572901623991815978054446475136​95847055781924546516117831035341751995038479363360236764037589652552734358075467​26950365787959069535783764102093751542883579308209052239229542942651199831631631​15472167192439906433580288868367941121225109981668515009706005964228140153149223​75219772110465370889845311983922868600207992876647554046616916952312516797263924​72285667959414762184646723031176048397495107426502426934164350085886821880670213​45193000991641193921914118158391530297582680136460161092726687202814604316716090​68434649628904237351056796057474376823980025688443777027431147221743739169486771​047944328820302039159377135550854041857 48564062893637581376978677013936096381020808346523533834861966514029804865070244​36897267093878724702454137271759008338855686922703473323862094591259614417770923​05174615372106419282294199896272622443743816901916499822706384411493975098136345​11832651717419645241964165944354284829525392183271808846008918564037386476338215​39325499073102926085858160081089902251379407160856814779856881682687574545127549​41841893965151530205733692896667535250599569233495672289550176765138804108900868​71271410998609424667121369333710341325862072861114936818636967880651484893494416​10972281017383579718184662822194026651762916254291766360245447522463693269284010​64389909420454982801209933469411380309143345536517652045136871371031853313028924​39055359033996992962489359321301019289242784452860960078330905463306135117214626​62554933020861991913459937273092926051976920805025923718723047083680775696151323​69957493740464802017978141120373178951598194181017291874030029986856724850521342​01002513089682156309108455979850815213498443726301733989362250373667769826849329​54986142593020124484643833914771313052921063539402138133669300413253656549258386​89008925614912158691391118746306009684230812908484352557855375772053616868022307​66955462480276959942950757060904153848007266820745386620581104491724136441264879​04013148102145916317861367695259822217473837438415599319798364593265215730144298​56058756153436828929819228883282861849144819320638290023954447979059529577953925​36960157600458407610100645725354855185283590360893843698053455809552518652313759​22721330395137168604173543135514314160687632711640060827201878012461146249431947​09359586744507991921363147386045776700265988646124678234396814452666945321096499​99961809089348663048235249935868421821595698871336175679165505595016205279168323​81918610062651211469443922466663383910429013668035252479575757134414962694518350​64633253207804369166825853287691552492512012943395743677103208597813409900178673​57003354194436524580200239752603709146152480458882395905558542533733480892864734​41785299312446143587919659057506531232794125846648733258230294045658621647485606​48482166481102321976314666543427314777970378231936475809862126678184375004300926​29109780792722163446858735148499626679878907710223356100639297702075555402294351​56622061687044216072663154388239641897088705868582994265809143935248476237622702​93620682496516295443910758567807246514660837499646207595369517961962263610931831​84314798290416356737591837054833328205162989075967199226540241392135291527392324​65289917726955078918 44442840187184249379486313408939572854501663045171884548454766388324978394690011​08444384307362873399476887028558143422587932105463180378948859688924511312888155​61410981818856216404706414490355003104597405999532589303665696558492876183504412​45109309857135671257062208247811657117472650960462336447237243400181511821451897​17139357241968788308418284712109181722301992268092063124657242062549422094377065​24533933045782797915491124795737131104358128277448833339074136818431487669672719​26783035398529927833019839640458383185545031695820188893821520188488964075981221​33977726650977615364213595356548027291201033811192002487337765351045611611794562​49247482530113317932970549472901247151157753552305615740436633967265971286957642​46646215878360163067086325980734448666514816010566014653089938115128297026151496​25789000011631662404261452921334452788187087318593995771387586665680608384260098​99215120383552305655126509882376152470170176818912485459528465950306424873417850​40548400389543860606073653323544164865247883365373125622237872913825160970966569​55455963376453531852476072646708678096041998545491955714369424994656800859664850​41333275366439163964181817384144087122904702171671811366627344466114297022721460​72435177669171090192940732182030580688347546161453236113056147966252082547050674​41284928289847421758291079202315027307971337440071970029057449259125852802017497​75275529659052310589811498154514844974018721031547926271610941545674307597451972​35960553519149409027646569575500755912799420926608282934674826969238435914582009​78967670003733332332818412997394691615798031352021785110799378629451920473597225​85299970343499666890497046957395573467329944537185058574473407164413758796642286​20625278070650132553353243009437231961044982191139131499533933566246938109140798​87714704270224264816521818553439043234692047604864897673103524914722358162917660​09698820209246554318665164233969186522778337172058690685184187568747001341833403​59896706620419620276070761720028936433073526746729859941125147234243921299866657​08524717290645218444588155111650125228573900411162799261543406234116244477484056​21227767317261153631797557000335784444378492540897193794710005378987399160021811​15301308211619094130257932908885352613544835781699266103969238922385054094591948​79297205956424182443387449828525347671431681634456757578772385569873808177880898​21860913858708165840548814502903219336405428928708531902266722813524690102283421​09479156391264160049374063971383968317286943317633362796658514191232846691033278​810259586373545078 24114610173820658649610360154324310723115859462643973654442543604725011427766239​64023731116893575607015904063765513968661826052422333810260261919996429247265045​02691921869930472863697481158205080133317573018437772859904246572798188900040657​33175529397360751959117378244902077535322879130821609270162905276999910375037357​98381612148360868440123476150483760687117967672070443001903421658510938949895696​24187927101718725941006517060436539996221444270382422329684626458051435512588105​40042016176707764003304988717155189131097195323986604179161362089290520436020602​22760913813554790195367454888633480232416889451117217650961396257998257299775801​76578865457908032081442454656766070056669681424090893948384449255433628121739486​55790625817839743318210390697506348283115078966645700092466716980523050188754363​57018548848566053541726034995520631576555919262288293504412672715151157686434673​59868954829984863823927428968038584981297206535139522958104803418676857232541313​85832867955637775365340605791999127345648577847712373213860575067949884833269110​88317691972361176705083545773050255167324267323882759808754868394175891652524001​98888513126925581235350156875996081621512763704241411579832036502104133254395644​69890419409702750404123812124413011864361049316886387590106121357655239989354948​92095177594431849774271456531110222239344717085373085615122791473959937241599308​89606135438008503947812751743797451860006407930956855173599120739509345480043395​78206737853942600746486239940478219255004105983359815503034182728176064138258586​44813079424922462658138179437870559583683489697391033282991535542511003316593613​91763093765573258733222769564839904324047707034710507507276597183518693338752923​85510590632818846719594249045077633451938183633320958410396840347653094519887034​63172391330507144244768023666041286851462367552884958344702299481938380861923800​97800441802852576596660501299417449993835509285353809362962364695301888208378145​90710286310611398061426275153463281951271343098188380505402793062908581141250553​83690048623969627630864971463905150310511452067159515364879553289903957584732655​05367916495327239479157499887725957500586878394304392425787637048984020794902896​93782240934859059292648265252952851165932711130355374560748553931369724795296761​44319013253525350934205925335141233808950756336607191783763996948091145547572065​59648996788046882022572064665165458840043327561305413537422825790603397918026635​05605763326183894245121981315894284463188952671820803397836709931880443474202983​33047500691513323944915405969458617517140271917479137416847211297814420708161026​53273622007941559612046527029301822731218261795885513011418594929563502570836285​14453792412624590086029199637584026875739055768929276839328460220093793990556832​87855423489364646768747738947613025916939899973949224645633649816414053644991633​25017082330223153261448414473806388876832701887591090832858213613927852769508888​21115917846716020329 81204360147158948794178614427539393608397932565359152745641829495312942262647070​94824196142544714648074238770959659472948278829481823999012320038238435020026425​57058605308382185039077572648707077011637739889286808774624210007582632592249678​75059446767450110524044349098989932942062732023503311449068744887811382432669854​57956021961340885120511067253169066911099450886246633904653311891841448514046181​85554538825194604108830962364527731324071976578134931008537534511256133281917156​57539017069148755439898686239458207790540990495954768254467955913697233314546128​48638310791370355488762920147952683159890964080282514361715528841896971822437727​18074935379502179695745060662254639174238918321420990719461887836376962008726252​47738792673234205620596616965773557833883304260804495138851472845905712287309722​17751177517172866532644528390454878699222513101019664166150275061482041719568235​80550181831912586196592415306489936788391452137553618188417105259652543586109613​35631071259232844185525247125691400789925295753641473623399895438714799353168871​51063297555279495474786468564441340554423397564218055303855784935553687968364849​70222736932032596319382498454188224775903194896229525904383802458805264717389494​21213026861638111991585470905249005220017273994596682174160905835671972721836708​89666774789090248106643198748039549270794301906547155984578296412653757623354251​90743602926903675984215468968524482926465321620128727549527104767964816044205946​11544886298530108955462806152834378464861411567440214888776720020735186990453970​14838622127705079612205660811314218123635544686821088591618095938402798878029525​39917202459079809576089884804072722139009559317647743019180921805205518897469891​96312468182272857634619143964898677509721354115291038780538831936649064572921199​25150044709258999915055530015191820371326910375534326390594177985107890546455515​11452335999890243694986132185668052171792478167599698717011706119414150631699111​86998280911522698608970572288921566155088186863141126762048758557841792346380277​21723715631096750113804688958568831474188520468687866113476397542646433207920127​06699457467584145565573665988287353738842246961464236371062606546817723691085563​74283923959712226183165104012137188802416861345488468311234807103728783212733380​16325858834001111093274176242630058429869366478147617376714137359838756375576247​89785013942321481139528729262973635712842524639746617548392585738812446321992762​60241635707618310672189637371392170342685737533934146006773480229389808789900812​61818368482666022755916539436203720356165043104609267975367695056970102615042081​34222393554302872098345290840543897993462348346034677331819598432778700026437514​54856369552910132475051762294895019486630970867987030097845306196389072659122103​90590339485558653216602440819462696093291636519540177924099173642861771906237336​17706764083811384751229466627566141272322153155541960197724050364442179355120997​36114000503108334631 91057625924169544250874431005819082272226443228204227328195533847280579875010471​42018400905347573672776415030944734969075104782620724238804530759695514232714034​86611466895000826224655688344949801360618209031437040715955195105484729169616038​72221317792464337452029799843393187510982543207693690972107664296092398202261489​58682286950764545990549399927443302894437268887478355159128248985001447002745826​34542737914927943412388675888451421617393769512961134401749148968585015823248487​49744307711451251448194960040409218430629747191299539624496197178659132374620624​82587786978917326890373812514234990045840889562331276851260548864653128876986856​98321024976302601098096707725597003315049054120704299616675221725023271735703678​22786852680640220960150526550831828699254322784391104134860923600422703707287140​75392128989252098378470712181219679111772771928485170735268850217899703483257027​16554984973702217628679604714388536032254017645938978137744479471838519574280243​99000859308231366927301795128055921171057911332689156232887460618626410655322547​81767288092678219420421651789389600170539403882020417630135772921739915180138410​53196592025429425247347206411872131442891826197850028923355034534214837238370106​75647789854124593873059659777530822976146102465383848641067699020292008397228237​70772276365628161251455491076748086668627743558033328703317825914177206158910147​40949805001939380208099220755374687925186427657658034721109587568732146590505039​56684363426229835915357217463070226859471904019173051664562242114383125944028602​45986989864539883558853049023307908294259821937472749668926272238101268785511990​68339677121532157426717591349255206366895727144522145162984728328327426255693078​23089709343816314908425538812061102445262998269779717850453465469467011284654336​11291536745795154437194605087601574259362475055872980415759491252825367175852982​41858494185691153795429844216111875128997691174865311552381391259678686192540651​06781266138305933652230544981810306939609030733671117869791389602902207929079241​72816804022835166983668661917091772540944380006219191940358186955056239846623115​44163788184706018098016019429749317977842508279246255759683520679508928002505879​74860329987595636024726714703604629111885270232669982610504827291130681477306929​15621011887183837024653216655222838840296650836650741272359749229860551500344569​15034206228156897085777805141223900419289578718576740184596907217306250869660373​59285348010188426416299777518390364101687022427763416793292856371926926610595156​19376935134910849724597608382640992143519398458380162389473469092383673245751615​81391371206319663272424179303385464002370577283742078692342631249726553180837535​30196230837883426201808635451874587298089993741853448482021287968188790266481138​69328079411277751110779244649168070819737159908844423289417681766391207458167963​99864654328673985826155628411469080512485067766943507727130965131502837828227768​07253551887270559003933607367049787184256260453359931624582111100066469507216452​39825287860483422077456899946968488032144067687156174960050380440001893408798917​987241253845242023028512047183436583314357883764719634120602 10647159386845174809905759294552066366524655196630026834147925556793305730539371​47472302597017097483777994878792038111683701526077580625242411493506341717714586​05773033601907464911474330572141889228607562686268131516818555948747007907612194​94724111142637567861846373186657980661336144010897490343997713263886087994727615​88446161252979142148541915772577576168115035469301574712654293957122885480725406​47249289016374400574554793278822908553602642310120329103438467135369587697204259​73177840131904228006908940767722198458179528878669934590329409547566481690725463​21459451725363586186869026947085070607836921422800854909892781820747770005726116​50582146470979216447657966289262960430557826028914338996010817464966195688660259​66714005413320981191013623667997616247167751813125590120077292682036498592259427​79432007133754970603843752042415530408558405715840741985352781222633392505377605​00227483794184896215773204928303967146700457601781991454543191404408611173482921​43600703115254658680643291936980355638223734715994105922005974364010244880361831​15976799210884915411720108437573174371949552819625829068082803384983587673947980​69554296188638072402813743383752019263161823378052758562148065973869163248107838​34771318498286407451598776543075822121579614089358790410911864757261118684913025​08679642838883579769605783942569851950691389954833636429178117997603445463648061​90458231422105107818085654282128094187595729021933520874694208356531623290758289​19075762626917316924891557548071579726830108295116423252954952846171024774185367​82742846499017434388154821066280957001423682631724783089738303879784000672839915​63827068825035384999161288157243115188215704748979181138213294386328110311994697​97628222922914536441940824990678942413338544906187126508308348516946189470901633​76665104985537888346288697641825218003514567009148830822013688752333420064970769​45516227129708519993260679325887179640775416450105649581882608870813714690809287​80585539308161431083698207660723617802976955165343924919741513204173534272260288​94938607946587182881289941466101047297436020766293627768937905924242629091561203​12750077510809142524738209285762178160555308804703095931324025365355532454345122​67584667180795505561298175707024680892698209380713781326101214107209906860106128​52282467221837342761929632771306248804467156803609445990898420486516654254491523​27978089991863256905428675169026212011659751709694067654917010539052783917327119​58861085913828754779333250289909127185408789166576533031234904977247146764588059​31675377578537521922795899776238003840129852956280032232167843869258508121572638​42474889243714208039686787709533299577176418455726276257471352420019259247622859​33472541430858078096050431058300699980427872992634413832642491458187734154570240​63948439596990956525719303820095571548930124421505919831580748931453406355113536​57670916644111391953768470855555312340616297186059776138097328556852732794923221​12244435675918642684130608172769414277479193401730636582721887504272598950133344​0194184409204475060261512178655767046312 24628646014167658122278746277636156141919088558104704219030987751963718834324365​12328775562491516934396897013586418294793021027142350222245625288310372253956741​32514937685199727115705094793324552679829991441480224196473415513754408707384421​49914508488237678741257665511289196256635905970936702465604599578850489734465227​30074681171150521337768681898754334732138833736922563673753135345209125004935874​32314714385474262342520907351675439074211418813867421646958257790031591662934641​50153679811419553821594698840579821259220904461474731859501404719195284124893234​66741344476325397246784619573209208840267984282192956833228864193721550850999412​76170262916612913481422910493749471028548592110212144466381742049633098851981307​77979224693282414232385316089120480760850131164709657867591920208766142546982165​79128741843894622867054575697881220974451554683993059809580035181882267776244670​64972981596169980853530196849062379932478083422782538979843122786839468656228652​90666403146558171169482537285837433279123576253849526688936438940858736358355639​59912500154876868907410138613706038690823368796521441278867956868489290328483347​47722012218358461703266605584575333645004974759560072054253992909496911861398581​00077672427726847744071462153475253586494982701185403810759548081608493654278258​99592101898818474760797529559762708034352688063128314370400538936718650480752229​58484383869634277953109979721786352551544171012028723179691505349055456009260148​25156090829195462756643381623006123691652962118418253682832750517724206854580814​20218949913029489044577377913400417109420333989602667776265315063683322394231318​28830794561556910065918631799229237280602897489120033127188262339864964268287067​36076391375877938685214405745138009694682857183556033928425964271011658568230461​86075644300110025034782656059402283259989306926397330072209232171192227145720616​88251727104258131266814526065543277449814947772343754834504693868202465168279437​53781923308224149556443132550726241506562845956780897104545680370319515666455644​97142193129788140636030815264188810463597890863133683088091948029131342597140135​64580521776277296885796398858532917375961764090656968929077921526714839505107615​76165631135817746459048353988980156815378878185521513479318398639767580378094548​22979385621497856756260368129926087275925712133355056898054965216805530011599757​91018598499955488257656981585992135639099228632423062821479680600255395302668189​85351157345484021743835788980764089922097732534867144333780709382876217474186465​51866428157607982590108052435056684953614063586913828421195015184120909844228694​19537866053857727446592165561161152892947792867244740878810292087528825261378635​01323404867885423186754708696945372837596061881199737186281611436919508274669138​17248231990052457845320293693034167007292729636161351953002582871072332792687749​46624069174711312318316658838549035850874848056362326345309861327097347093713475​12034320896636308473050221057270041130072130409633836773255125705932677188581992​9041994639185462381676844837570380674636 25807369238264795497339345972674009344148333329205125123240184242013637933875156​40598069024366816003186978933277351979760146162724360569011516418499973790666472​15841712676409882334735324193116562145748681418322120279462005728528014107151687​40268506601434731322617264264850843959837680413337180258691496088066829233953022​40174963545282646149153407258447542797078763113477973919040361695384046413475508​86870259376117367761550059059778449178999654088991387932947241657075528462524599​51353678964801663187304987196430231552505819709675177064321201248667336947476454​61371624749829947307491792133983806129941781908339696186009063153803549059494842​99381214907771744489452863347688348175619717218657329198370144917222002552620794​78145836305389417825768615700444806263028081404600151224871212764672532845463099​27348039991739362924758367998509022547215396653304689150938700251960481592214308​58660206587640175942331621524644938921182579498262746254832916104262494193883805​91887156987645529957356636944960333272463376412340087622571235418417734757862786​71725386559744258079086351453494281200713290561687112038486266638563608644073076​19444838209264567299296174509788534355027909672635062859242103312396947079513341​01254171612762398035232961850838952289618344613186812181240845568171382945372292​03352484749596964829282521819453217993692515277035224618649198136897128131042940​00178062850079892375139254624819362009307491088910138903680115133827482175724609​26398845344492521523788180378022971294858785481519620800048657913410350785308042​56038231889790799109046806974786941054120263581776497701831871369376999781131041​41354435155221581301948719246365247366184823456336305041217727693712990102454549​37274138925274022987514304439236693897861940508957467544931161796928564926776630​17345924079041737251942901059196359205519230054065620316451664731274078432410341​75475449194334980773844415207799328716900667749665445568592016762348491866595764​54945263617348494470456531282338056260972491476798129984885787715778425765928325​18812471768960440792533369114865307679547729256451043320815414179192192271891085​22731638767774532956572709652316183010552178067196336307066745136795865085002152​77384183373841486024003452659423272918513837734222962887168795103982798777504467​04839661137573176819624513559615890197015644029618046148231042556988606157069486​22466923480987879674686496588762514552649817390080055559446880147478322643644506​86536326501781160581963187699457185425215392112268551056414106865862314773632924​68426702596380612659487235825737759899934989814134578768709762224200233346518326​19452713704411997317152347588479162322885045649300292777809713404029851371910875​02563029710151395828927407344413825230896024548890212732400771883809258673161641​72762690279048937900781243890034022816232659453359821209134811011158762878487472​28960006738887775459346771350973045918183313023539691587397895730064373960497012​13230997041633487923859292073383186533255303278239799763510822236303748287020769​4105923645840864397607771973549754936684 }
02-05-2018, 08:31 PM
Post: #9
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
Juan14 - What is the first symbol in line 7 of your programme?
02-07-2018, 05:31 PM
Post: #10
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
Meanwhile here's my 50g programme which gives correct but perhaps not minimal answers to the problem.

The size of the returned partitions is again log2(SIZE(N)), as for Juan14's programme, but integers up to 40,000 digits have been processed correctly.

Size: 557.5 Bytes

CkSum: # 6711h

Code:
« 0 SWAP   WHILE SWAP 1 + SWAP DUPDUP →STR DUPDUP SREV SAME     IF     THEN DROP 0.     ELSE DUP SIZE 2. IDIV2 DUP 4 ROLLD + 1 SWAP SUB DUP OBJ→ 10 ROT SIZE 1. - R→I ^ OVER SAME       IF       THEN SWAP         IF         THEN 0.         ELSE 10 * 1.         END SWAP       END 1 - →STR DUP SREV ROT       IF       THEN TAIL       END + DUP OBJ SWAP DUP SIZE 2. IDIV2 DUP UNROT       IF       THEN 1. + SUB DUP TAIL SWAP HEAD OBJ→ 1 + SWAP +       ELSE SUB 1 SWAP +       END OBJ→ 1 + DUP 2. <       IF       THEN 0       ELSE →STR DUP HEAD "1" SAME OVER 2. 2. SUB "0" SAME NOT AND         IF         THEN TAIL DUP SREV         ELSE DUP TAIL SWAP HEAD OBJ→ 1 - DUP NOT           IF           THEN DROP TAIL 9           END SWAP + DUP SREV TAIL         END + OBJ→       END ROT OVER >       IF       THEN NIP       ELSE DROP       END DUP2 SAME NOT     END   REPEAT DUP 4. ROLLD -   END DROP SWAP DUPDUP 2. + ROLLD →LIST SWAP →TAG »
02-08-2018, 12:17 PM
Post: #11
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
Here a smaller & faster version of the programme, produces the same elements of partitions:

Size: 469.5 Bytes

CkSum: # 44E7h

Code:
« 0 SWAP   WHILE SWAP 1 + SWAP DUPDUP →STR DUPDUP SREV SAME     IF     THEN DROP     ELSE DUP SIZE 2. IDIV2 DUP 4 ROLLD + 1. SWAP SUB DUP SREV ROT 1 SAME       IF       THEN TAIL       END + OBJ→ DUP UNROT <       IF       THEN →STR DUP SIZE 2. IDIV2 DUP UNROT         IF         THEN 1. + SUB DUP TAIL SWAP HEAD OBJ→ 1 + SWAP +         ELSE SUB 1 SWAP +         END OBJ→ 1 - DUP 2. <         IF         THEN 0         ELSE DUP →STR DUP HEAD "1" SAME OVER 2. 2. SUB "0" SAME NOT AND           IF           THEN TAIL DUP SREV           ELSE DUP TAIL SWAP HEAD OBJ→ 1 - DUP NOT             IF             THEN DROP TAIL 9             END SWAP + DUP SREV TAIL           END + OBJ→         END NIP       END     END DUP2 SAME NOT   REPEAT DUP 4. ROLLD -   END DROP SWAP DUPDUP 2. + ROLLD →LIST SWAP →TAG »
02-09-2018, 05:43 AM
Post: #12
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
A further rationalisation of the programme, shorter & faster:

Size: 431. Bytes

CkSum: # 8EABh

Code:
« 0 SWAP   WHILE SWAP 1 + SWAP DUPDUP →STR DUPDUP SREV SAME     IF     THEN DROP 0.     ELSE 1. OVER SIZE 2. / DUP 5. ROLLD DUP FP 4. ROLLD SUB DUP SREV ROT       IF       THEN TAIL       END + OBJ→ DUP UNROT <       IF       THEN →STR SWAP DUP FP DUP UNROT         IF         THEN SUB DUP TAIL SWAP HEAD OBJ→ 1 +         ELSE SUB 1         END SWAP + OBJ→ 1 - DUP →STR DUP HEAD "1" SAME OVER 2. 2. SUB "0" SAME NOT AND         IF         THEN TAIL DUP SREV         ELSE DUP TAIL SWAP HEAD OBJ→ 1 - DUP NOT           IF           THEN DROP TAIL 9           END SWAP + DUP SREV TAIL         END + OBJ→       END NIP DUP2 -     END   REPEAT DUP 4. ROLLD -   END DROP SWAP DUPDUP 2. + ROLLD →LIST SWAP →TAG »
02-10-2018, 12:47 AM
Post: #13
 Juan14 Junior Member Posts: 43 Joined: Jan 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
(02-05-2018 08:31 PM)Gerald H Wrote:  Juan14 - What is the first symbol in line 7 of your programme?

That symbol should be “≠”, sorry, something went wrong in the copy-paste process, it also returns zero when it finds a polindromic number. The program should have a size of 214.5 bytes and check-sum # FB55h. I tried to make it shorter but I couldn't. I don't dare to check those gigantic numbers you got.
02-10-2018, 06:12 AM
Post: #14
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
Hello Juan14!

For even powers of 10 the programme works economically, eg for input

100

the programme returns

99
1

but for odd powers , eg input

1000

the programme returns

99
898
3

which is a correct partition but slightly extravagant.

Are you planning to improve your programme?
02-10-2018, 06:16 AM
Post: #15
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
A much reduced version of my programme & faster:

Size: 300.5 Bytes

CkSum: # 933Ch

Code:
« 0 SWAP   WHILE SWAP 1 + SWAP DUPDUP →STR DUPDUP SREV SAME     IF     THEN DROP 0.     ELSE DUP SREV OBJ→ 1 ==       IF       THEN DROP 1 - DUP       ELSE 1. OVER SIZE 2. / DUP 5. ROLLD DUP FP 4. ROLLD SUB DUP SREV ROT         IF         THEN TAIL         END + OBJ→ DUP UNROT <         IF         THEN DROP OVER →STR 1. PICK3 SUB OBJ→ 1 - →STR DUP SREV PICK3 FP           IF           THEN TAIL           END + OBJ→         END       END NIP DUP2 -     END   REPEAT DUP 4. ROLLD -   END DROP SWAP DUPDUP 2. + ROLLD →LIST SWAP →TAG »
02-10-2018, 08:06 PM
Post: #16
 Juan14 Junior Member Posts: 43 Joined: Jan 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
Hello, Gerald H, I modified the program, now it checks if the integer is a power of 10 at the beginning of the REPEAT portion of the program, with an IFTE command, the program is now 201 bytes long and the check-sum is # 480h

«
WHILE DUP 9 >
REPEAT
DUP →STR SIZE OVER 1 - →STR SIZE ==
« DUP →STR DUPDUP SIZE 2 / SWAP 1 PICK3 SUB
DUPDUP 1 5 PICK FLOOR SUB SREV +
4 ROLL OVER <
{ DROP OBJ→ 1 - →STR DUP 1 4 ROLL FLOOR SUB SREV + }
{ NIP NIP } IFTE
OBJ→ SWAP OVER - »
{ 1 - 1 } IFTE
END
»
02-10-2018, 09:00 PM
Post: #17
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
Very nice programme again, powers of ten now partitioned with 2 elements rather than 3.

The IFTE construction reduces the size of the programme but makes it slower than using IF THEN ELSE END.

The programme still fails for larger, eg 6000 digit, numbers. I think the problem is in the part I have put in bold red below - I believe the comparison should be between the two numbers contained in the character strings rather than the character strings themselves.

«
WHILE DUP 9 >
REPEAT
DUP →STR SIZE OVER 1 - →STR SIZE ==
« DUP →STR DUPDUP SIZE 2 / SWAP 1 PICK3 SUB
DUPDUP 1 5 PICK FLOOR SUB SREV +
4 ROLL OVER <
{ DROP OBJ→ 1 - →STR DUP 1 4 ROLL FLOOR SUB SREV + }
{ NIP NIP } IFTE
OBJ→ SWAP OVER - »
{ 1 - 1 } IFTE
END
»
02-10-2018, 09:08 PM
Post: #18
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
For example

"11" "2" <

returns

1.

.
02-13-2018, 06:31 PM
Post: #19
 John Keith Senior Member Posts: 883 Joined: Dec 2013
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
(02-10-2018 06:16 AM)Gerald H Wrote:  A much reduced version of my programme & faster:

Size: 300.5 Bytes

CkSum: # 933Ch

Code:
« 0 SWAP   WHILE SWAP 1 + SWAP DUPDUP →STR DUPDUP SREV SAME     IF     THEN DROP 0.     ELSE DUP SREV OBJ→ 1 ==       IF       THEN DROP 1 - DUP       ELSE 1. OVER SIZE 2. / DUP 5. ROLLD DUP FP 4. ROLLD SUB DUP SREV ROT         IF         THEN TAIL         END + OBJ→ DUP UNROT <         IF         THEN DROP OVER →STR 1. PICK3 SUB OBJ→ 1 - →STR DUP SREV PICK3 FP           IF           THEN TAIL           END + OBJ→         END       END NIP DUP2 -     END   REPEAT DUP 4. ROLLD -   END DROP SWAP DUPDUP 2. + ROLLD →LIST SWAP →TAG »

The version in post #12 is actually faster on my physical calculator and emulator. A neat program though, and surprisingly fast- less than 8 seconds for 32000-digit numbers on the physical calc!

John
02-13-2018, 08:05 PM
Post: #20
 Gerald H Senior Member Posts: 1,598 Joined: May 2014
RE: HP 50g: Programming Problem: Integer Partition in Palindromic Integers
Yes, you're right, P431 is faster than P300.5.

Would be pleased to read of improvements to the programme, I'm sure there are many possibilities.
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)