The Museum of HP Calculators

HP Forum Archive 16

Sweet & Short Math Challenges #15: April 1st Spring Special
Message #1 Posted by Valentin Albillo on 31 Mar 2006, 11:31 a.m.

Hi all,

Where I am right now, April 1st has just begun, the very start of a brand-new month, so time for a new S&SMC, this time #15, an "April 1st Spring Special".

What's so "special" about it ? Well, for one, you'll have 5 individual, affordable mini-challenges to test your smarts and programming abilities against instead of a single, harder challenge.

And secondly, this time you won't only be fighting to find your way through the challenges but you'll also experience the agony of a deadline, i.e., delivering the goods in a fixed, non-expandable amount of time. Namely this means you won't have a whole week before I post the solutions but just this very weekend.

Next Monday I'll post my original solutions and comments, so if you want to try your hand at it before I spill them out, you'd better hurry up this one time, no excuses. :-)

In all five cases, you must write a program for your chosen HP handheld (preferably, but other brands also acceptable as long as they're handheld but no PDAs!) to help you answer the challenge. Any language (RPN/RPL/BASIC/FORTH/C...) is acceptable as long as it actually runs in your handheld.

Now for the Spring Special:

## Take 1

Given the coefficients a, b, c, d of the general 4th-degree polynomial equation:
```      x4 + a*x3 + b*x2 + c*x + d = 0
```
you must write a program to compute the sum of the cubes of all its four roots (real and/or complex).

If in RPN/RPL, your program must assume the coefficients have previously been entered into the stack as follows:

```     T: d
Z: c
Y: b
X: a
```
and upon running, it must stop with the sum of the cubes of the four roots in the display. You should try to make your program as short and fast as possible.

For instance, given the equation:

```     x4 - 2.006*x3 - 4*x2 - x + 4.44 = 0
```
your program must output 35.144216216, which is the sum of the cubes of its four roots, namely:
```     x1 = 0.848975027766
x2 = 3.21371823523
x3 = -1.0283466315 +0.754884455486*i
x4 = -1.0283466315 -0.754884455486*i
```
As this is S&SMC #15, I'll post my 15-step RPN solution for the HP-15C (which will also run in the HP-34C and other RPN models as well), plus a couple of solutions for the HP-71B, for good measure.

## Take 2:

Write a program to find all positive integers up to 10,000 such that they're simultaneously equal to the sum of the 1st powers of two consecutive integers and also to the positive difference of the 2nd powers of those same integers.

For instance, 153 is a solution because:

```     153 = 761 + 771
= 772 - 762
```
where 76 and 77 are consecutive integers.

Your program must find out and output all solutions, and be as short and fast as possible.

## Take 3:

A cable is intended to tightly surround the Earth (assumed to be a perfect sphere) by the equator so that it touches the ground at all its points. Unfortunately, due to a slight manufacturing error, the cable, which should be some 40 million meters long, is actually a trifle 1 meter longer, so that regrettably, instead of fitting tightly as intended, there's some slack.

To fix the problem, a man sits comfortably on a small cushion at ground level, picks the cable between his fingers, and raises his arm vertically upwards from the ground till the cable is perfectly tight again, with no slack whatsoever.

Assuming that the Earth is a perfect sphere of radius exactly equal to 6,400 Km, and that the cable doesn't stretch at all and has negligible radius, what's the name of the man's brother-in law ?

Note:

In order to help you find the answer, you are required to write a program to compute the required height to remove the slack for any given extra cable length (measurements in meters), and then run your program using the data for this particular case (1 extra meter).

## Take 4:

The subject of self-reproducing programs, i.e., programs that upon running do produce their own source code as their output, is highly fascinating and has tons of actual instances in every programming language known to man.

For instance, in standard C you have:

```      main(){char *c="main(){char *c=%c%s%c;printf(c,34,c,34);}";printf(c,34,c,34);}
```
in RPL you have:
```      \<<
\<< "\<<" SWAP +
"DUP EVAL" + OBJ\->
\>>
DUP EVAL
\>>
```
in Java you have:
```      class S{public static void main(String[]a){String s="class
S{public static void main(String[]a){String s=;char ='';
System.out.println(s.substring(0,52)+c+s+c+s.substring
(52,61)+c+s.substring(61));}}";char c='"';System.out.println
(s.substring(0,52)+c+s+c+s.substring(52,61)+c+s.substring(61));}}
```
and in Pascal you have:
```      program s;const p='program s;const p=';a='a';aa=''';';aaa='a=''';aaaa
='''';aaaaa='begin        write(p,aaaa,p,aa,aaa,a,aa,a,aaa,aaaa,aa,aa,a,a,
aaa,aaa,aaaa,aa,a,a,a,aaa,aaaa,aaaa,aa,a,a,a,a,aaa,aaaaa,aa,aaaaa)
end.';begin       write(p,aaaa,p,aa,aaa,a,aa,a,aaa,aaaa,aa,aa,a,a,aaa,aaa,
aaaa,aa,a,a,a,aaa,aaaa,aaaa,aa,a,a,a,a,aaa,aaaaa,aa,aaaaa)end.
```
Now you must try your hand at writing a self-reproducing program for the HP-71B such that upon running produces as output its own source code. You may use not only statements and functions in the System ROMs but also in external ROMs, such as the Math ROM, the FORTH/Assembler ROM, or even the JPC ROM, to name a few. You should try to optimize for program size, the shorter the better.

## Take 5:

We're given a function f(x,y) recursively defined as follows:
```     f(0,y) = y+1
f(x,0) = f(x-1,1)
f(x,y) = f(x-1,f(x,y-1))
```
by applying this definition, it's straightforward to compute the function's exact value for various arguments, for instance we readily find the values:
```     f(0,4) = 5
f(1,2) = 4
f(2,3) = 9
f(3,1) = 13
```
you're now asked to write a program that computes and outputs the exact value of f(4,2).

I'll post my original 9-line solution for the HP-71B.

## Caveats:

That's all, the usual caveats apply, mainly:

• Please refrain from posting just the solutions, actual code is mandatory. Googling solutions and posting them is pretty lame and only serves to spoil the challenge for others and makes blatantly public your unability to comply and your serious attitude problem and disrespect for rules.

That said, let's see your answers before I post my solutions next Monday. You have more than 48 hours, so hurry up, you can do it ! :-)

Best regards from V.

Post-Edited 3 Apr 2006 solely to correct improper formatting (extremely long lines).

Edited: 3 Apr 2006, 5:48 a.m. after one or more responses were posted

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #2 Posted by Arnaud Amiel on 31 Mar 2006, 1:15 p.m.,in response to message #1 by Valentin Albillo After trying a little program to solve 2, I stopped and thought. Looks like it is April 1st... My solutions a bit later. Arnaud

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #3 Posted by Marcus von Cube, Germany on 2 Apr 2006, 11:39 a.m.,in response to message #2 by Arnaud Amiel Quote: After trying a little program to solve 2, I stopped and thought. So did I, but here is my 42S/41C program anyway: ```LBL "SSMC152" STO 00 ' Starting number in X LBL 00 RCL 00 ENTER ENTER ENTER 1 STO+ 00 + X<>Y X^2 +/- RCL 00 X^2 + Rv + R^ X=Y? VIEW ST X GTO 00 ' Stopping at an upper limit is up to the user END ``` Marcus

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #4 Posted by Bram on 31 Mar 2006, 2:35 p.m.,in response to message #1 by Valentin Albillo A program you ask, a program you get: solution to nr. 2: ```10000 ENT^ 1 LBL 1 R/S (or PSE) 2 + x<=y? GTO 1 R/S ``` I'm beginning to understand why you choose this day :-) groeten, Bram

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #5 Posted by Kiyoshi Akima on 31 Mar 2006, 4:21 p.m.,in response to message #1 by Valentin Albillo It appears Take 2 is the easiest of the bunch. Here's my HP 48 solution: << 1 9999 FOR i i 1 DISP 2 STEP >> A second take on Take 2 doesn't work on the 48 because of RAM limitations---it may work on a 49: <<'I' DUP 1 99999 2 SEQ >> As for Take 4, I haven't touched a 71B in years, but I believe this should work: 10 PRINT Or was that LIST? I'll have to go dig up my manuals...

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #6 Posted by Kiyoshi Akima on 1 Apr 2006, 2:58 p.m.,in response to message #5 by Kiyoshi Akima Duh! Not "Print", obviously. 10 LIST or 10 PLIST should work, assuming either of these commands are programmable. They are on many but not all BASIC dialects. Unfortunately I don't have a 71B or an emulator at hand so I can't try it out.

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #7 Posted by Marcus von Cube, Germany on 2 Apr 2006, 11:41 a.m.,in response to message #6 by Kiyoshi Akima ```10 LIST ``` works fine on my real 71B. Marcus

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #8 Posted by Crawl on 31 Mar 2006, 5:50 p.m.,in response to message #1 by Valentin Albillo Well, the solution to problem 1 was already known to Newton (and I was aware of it before this challenge). But Newton didn't have a programmable calculator, so here's an RPL solution: << -> d c b a << '-a^3+3*a*b-3*c' EVAL >> >> I don't think it gets much shorter or faster than that.

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #9 Posted by Crawl on 31 Mar 2006, 5:59 p.m.,in response to message #8 by Crawl I guess these all might be April Fool's challenges? For problem 2, the condition is that x + (x + 1) = (x + 1)^2 - x^2 Expanding gives 2x + 1 = 2x + 1 which is always identically fulfilled. So, any number of the form 2x + 1 is a solution. Though we only allow integers.. Program: ``` << 1 -> a << DO a 1 DISP a 2 + 'a' STO UNTIL a 9999 > END >> >> ```

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #10 Posted by Crawl on 31 Mar 2006, 11:12 p.m.,in response to message #9 by Crawl Challenge 3 It's difficult to describe the nonprogramming side of the solution without a figure, but basically... Having the rope pulled taut implies that it's tangent to the earth at the two points where it touches; ie., it's at 90 degrees to the earth's radius. The part of the rope that is pulled tight is like a triangle. There is another triangle underneath it, made by the two radii. Call the angle by which the radii are separated 'y'. Then it turns out that the horizontal distance of the base of either triangle (since they share that base) is r * sin (y/2) Then the length of the bit of wire that is pulled taut is 2 * r * tan (y/2) and the total length of the wire is r * (2 * pi - y + 2 * tan(y/2)) that has to equal 2 * pi * r + x with x being the slack. Simplifying that equation and solving for y is the first part of the program. Then we have to find the height of the rope. The height of the first triangle is r * cos(y/2) The height of the second triangle is r * sin(y/2) * tan(y/2) The sum of those, minus the radius of the earth, is the height of the wire. Putting it together, here's the program: << 'y' PURGE -> x << '-y+2*tan(y/2)=x/6400000' EVAL 'y' x ROOT '6400000*(cos(y/2)+sin(y/2)*tan(y/2)-1)' EVAL >> >> The answer, for x = 1 meter, is the surprisingly large 121.64 meters. I don't know if I can guarantee I haven't made a mistake somewhere, but the first question is, is this reasonable? I think I can argue that it is. If the person were to *pinch* the wire, so that all the slack would be in one little line above a point, then of course the height of that slack would be 0.5 meters. Much less than 121 meters. But as you release the "pinch", the area that's not touching the ground grows and grows, and the height of the lifted line can be much more than the original slack. As for the "brother in law", I don't know. My first guesses would be that it would have something to do with Goliath, or Atlas, but, oh, well.

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #11 Posted by Crawl on 1 Apr 2006, 12:45 a.m.,in response to message #10 by Crawl Challenge 4 I don't have a 71B, so this shall remain unsolved by me. Challenge 5 Sorry, I didn't do this one on the calculator; I did it by hand. It's easy to verify that f(0,y) = y + 1 f(1,y) = y + 2 f(2,y) = 2 * y + 3 f(3, y) = 8 * 2^y - 3 Then f(4, 0) = f(3,1) = 13 f(4, 1) = f(3, f(4,0)) = f(3, 13) = 65533 f(4,2) = f(3, f(4,1)) = f(3, 65533) = 8 * 2 ^ 65533 - 3 Heh, now I have to find the *exact* value of that? That ain't happening. But this gives an approximate value in scientific notation (in Level 2 * 10 ^ Level 1 format) << 2 LOG 65536 * DUP FP DUP UNROT - >> So I managed to fulfill the requirement of having a program after all. The answer is 2.0035297704... * 10 ^ 19728 Edited: 1 Apr 2006, 12:52 a.m.

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #12 Posted by Werner on 1 Apr 2006, 12:04 p.m.,in response to message #11 by Crawl Easy enough on a 49, were it not for the built-in limit of 9999 on integer powers.. So, all you have to to is write a 'IBIGPOW' program to compute a^b (a and b integers), up to the limits of the available memory: ```@ IBIGPOW @ In : a b @ Out: a^b \<< \-> a b \<< b 9999 IDIV2 a SWAP ^ IF OVER THEN a 9999 ^ SWAP 1 4 ROLL START OVER * NEXT END SWAP DROP \>> \>> ``` Now, I know Valentin asked for results, but you don't seriously want me to post the full number, do you? But the 49 is perfectly capable of computing it. After all, it's only 19729 digits. Cheers, Werner

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #13 Posted by Crawl on 1 Apr 2006, 1:27 p.m.,in response to message #12 by Werner Thanks! I really did learn something new. I didn't know the reason it refused to do it was because of an arbitrary (9999 limit on powers) restriction; I thought it might have been a memory restriction.

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #14 Posted by Arnaud Amiel on 1 Apr 2006, 1:54 p.m.,in response to message #12 by Werner Otherwise, I decided to try something else. I took emu49 and used the following program F with 2 and 4 on the stack. Now, I will see what happens when I wake up tomorrow morning. ```Program called F << DUP2 ->STR " " + SWAP ->STR + 1 DISP IF DUP 0 == THEN DROP 1 + ELSE IF OVER 0 == THEN SWAP DROP 1 SWAP 1 - F ELSE DUP UNROT SWAP 1 - SWAP F SWAP 1 - F END END >> ``` Now, don't try this on a real 49 if you want to keep your batteries. Arnaud

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #15 Posted by Crawl on 1 Apr 2006, 4:30 p.m.,in response to message #12 by Werner Now that I know how to do it, I couldn't resist: This should be the *exact* answer. In fact, this reveals that the last couple of digits I reported in the approximate answer were wrong. I should have known that, because 65536 * log(2) only gives seven places after the decimal (because the rest are taken up by the digits to the right of the decimal), so I should have only expected 6 or 7 digits of accuracy in the manitessa. I'm also posting this because of how impressed I am by the size of numbers this calculator can deal with. 2003529930406846464979072351560255750447825475569751419265016973710 8940595563114530895061308809333481010382343429072631818229493821188 1266886950636476154702916504187191635158796634721944293092798208430 9104855990570159318959639524863372367203002916969592156108764948889 2540908059114570376752085002066715637023661263597471448071117748158 8091413574272096719015183628256061809145885269982614142503012339110 8273603843767876449043205960379124490905707560314035076162562476031 8637931264847037437829549756137709816046144133086921181024859591523 8019533103029216280016056867010565164675056803874152946384224484529 2537361442533614373729088303794601274724958414864915930647252015155 6939226281806916507963810641322753072671439981585088112926289011342 3778270556742108007006528396332215507783121428855167555407334510721 3112427399562982719769150054883905223804357045848197956393157853510 0189920000241419637068135598404640394721940160695176901561197269823 3789001764151719005113346630689814021938348143542638730653955296969 1388024158161859561100640362119796101859534802787167200122604642492 3851113934004643516238675670787452594646709038865477434832178970127 6445552940909202195958575162297333357615955239488529757995402847194 3529913543763705986928913757153740001986394332464890052543106629669 1652434191746913896324765602894151997754777031380647813423095961909 6065459130089018888758808473362595606544488850144733570605881709016 2108499714529568344061979690565469813631162053579369791403236328496 2330464210661362002201757878518574091620504897117818204001872829399 4344618622432800983732376493181478984811945271300744022076568091037 6203999203492023906626264491909167985461515778839060397720759279378 8522412943010174580868622633692847258514030396155585643303854506886 5221311481363840838477826379045960718687672850976347127198889068047 8243230394718650525660978150729861141430305816927924971409161059417 1853522758875044775922183011587807019755357222414000195481020056617 7358978149953232520858975346354700778669040642901676380816174055040 5117670093673202804549339027992491867306539931640720492238474815280 6191669009338057321208163507076343516698696250209690231628593500718 7419057916124153689751480826190484794657173660100589247665544584083 8334790544144817684255327207315586349347605137419779525190365032198 0201087647383686825310251833775339088614261848003740080822381040764 6887847164755294532694766170042446106331123802113458869453220011656 4076327023074292426051582811070387018345324567635625951430032037432 7407808790562836634069650308442258559670392718694611585137933864756 9974856867007982396060439347885086164926030494506174341236582835214 4806726676841807083754862211408236579802961200027441324438432402331 2574035450193524287764308802328508558860899627744581646808578751158 0701474376386797695504999164399828435729041537814343884730348426190 3388841494031366139854257635577105335580206622185577060082551288893 3322264362819848386132395706761914096385338323743437588308592337222 8464428799624560547693242899843265267737837317328806321075321123868 0604674708428051166488709084770291208161104912555598322366244868556 6514026846412096949825905655192161881043412268389962830716548685255 3691485029953967550395493837185340590009618748947399288043249637316 5753803673586710175783994818471798498246948060532081996066183434012 4760966395197780214411997525467040806084993441782562850927265237098 9865153946219300460736450792621297591769829389236701517099209153156 7814439791248475706237804600009918293321306880570046591458387208088 0168874458355579262584651247630871485663135289341661174906175266714 9267217612833084527393646924458289257138887783905630048248379983969 2029222215486145902373478222682521639957440801727144146179559226175 0838890200741699262383002822862492841826712434057514241885699942723 3160699871298688277182061721445314257494401506613946316919762918150 6579745526236191224848063890033669074365989226349564114665503062965 9601997206362026035219177767406687774635493753188995878662821254697 9710206574723272137291814466665942187200347450894283091153518927111 4287108376159222380276605327823351661555149369375778466670145717971 9012271178127804502400263847587883393968179629506907988171216906869 2953824852983002347606845411417813911064856023654975422749723100761 5131870024053910510913817843721791422528587432098524957878034683703 3378184214440171386881242499844186181292711985333153825673218704215 3063119774853521467095533462633661086466733229240987984925669110951 6143618601548909740241913509623043612196128165950518666022030715613 6847323646608689050142639139065150639081993788523183650598972991254 0447944342516677429965981184923315155527288327402835268844240875281 1283289980625912673699546247341543333500147231430612750390307397135 2520693381738433229507010490618675394331307847980156551303847581556 8523621801041965025559618193498631591323303609646190599023611268119 6023441843363334594927631946101716652913823717182394299216272538461 7760656945422978770713831988170369645886898118632109769003557358846 2446483570629145305275710127887202796536447972402540544813274839179 4128826423835171949197209797145936887537198729130831738033911016128 5474153773777159517280841116275971863849242228023734419254699919836 7219213128703558530796694271341639103388275431861364349010094319740 9047331014476299861725424423355612237435715825933382804986243892498 2227807159517627578471094751190334822414120251826887137281931042534 7819612844017647953150505711072297431456991522345164312184865757578 6528197564843508958384722923534559464521215831657751471298708225909 2926556388366511206819438369041162526687100445602437042006637090019 4118555716047204464369693285006004692814050711906926139399390273553 4545567470314903886022024639948260501762431969305640666366626090207 0488874388989074981528654443818629173829010518208699363826618683039 1527326458128678280660133750009659336462514609172318031293034787742 1234679118454791311109897794648216922505629399956793483801699157439 7005375421344858745868560472867510654233418938390991105864655951136 4606105515683854121745980180713316361257307961116834386376766730735 4583494789788316330129240800836356825939157113130978030516441716682 5183465736759341980849589479409832925000863897785634946932124734261 0306271374507728615692259662857385790553324064184901845132828463270 9269753830867308409142247659474439973348130810986399417379789657010 6870267341619671965915995885378348229882701256058423655895396903064 7496558414798131099715754204325639577607048510088157829140825077773 8559790129129407309462785944505859412273194812753225152324801503466 5190482289614066468903051025109162377704484862302294889667113805556 0795662073244937337402783676730020301161522700892184351565212137921 5748206859356920790214502277133099987729459596952817044582181956080 9658117027980626698912050615607423256868422713062950098644218534708 1040712891764690655083612991669477802382250278966784348919940965736 1704586786242554006942516693979292624714524945408858422726153755260 0719043363291963757775021760051958006938476357895868784895368721228 9855780682651819270363209948015587445557517531273647142129553649408 4385586615208012115079075068553344489258693283859653013272046970694 5715469593536585717888948623332924652027358531885333709484554033365 6535698817258252891805663548836374379334841184558016833182767683464 6291995605513470039147876808640322629616641560667508153710646723108 4619642475374905537448053182260027102164009805844975260230356400380 8347205314994117296573678506642140084269649710324191918212121320693 9769143923368374709228267738708132236680086924703491586840991153098 3154120635661231875043054675369832308279664574176208065931772656858 4168183796610614496343254411170694170022265781735835125982108076910 1961052229263879745049019254311900620561906577452416191913187533984 0493439768233102984658933183730158095925228292068208622303325852801 1926649631444131644277300323779227471233069641714994553226103547514 5631290668854345426869788447742981777493710117614651624183616680254 8152963353084908499430067636548061029400946937506098455885580439704 8591444958444507997849704558355068540874516331646411808312307970438 9849190506587586425810738422420591191941674182490452700288263983057 9500573417114870311871428341844991534567029152801044851451760553069 7144176136858238410278765932466268997841831962031226242117739147720 8004883578333569204533935953254564897028558589735505751235129536540 5028420810227852487766035742463666731486802794860524457826736262308 5297826505711462484659591421027812278894144816399497388188462276824 4851622051817076722169863265701654316919742651230041757329904473537 6725368457927543654128265535818580468400693677186050200705472475484 0080553042495185449526724726134731817474218007857469346544713603697 5884118029408039616746946288540679172138601225419503819704538417268 0063988206563287928395827085109199588394482977756471520261328710895 2616341770715164289948795356485455355314875497813400996485449863582 4847690590033116961303766127923464323129706628411307427046202032013 3683503854253603136367635752126047074253112092334028374829494531047 2741896928727557202761527226828337674139342565265328306846999759709 7750005560889932685025049212884068274139881631540456490350775871680 0740556857240217586854390532281337707074158307562696283169556874240 6052772648585305061135638485196591896864959633556821697543762143077 8665934730450164822432964891270709898076676625671517269062058815549 6663825738292741820822789606844882229833948166709840390242835143068 1376725346012600726926296946867275079434619043999661897961192875051 9442356402644303271737341591281496056168353988188569484045342311424 6135599252723300648816274667235237512343118934421188850850793581638 4899448754475633168921386967557430273795378526254232902488104718193 9037220666894702204258836895840939998453560948869946833852579675161 8821594109816249187418133647269651239806775619479125579574464714278 6862405375057610420426714936608498023827468057598259133100691994190 4651906531171908926077949119217946407355129633864523035673345588033 3131970803654571847915504326548995597058628882868666066180218822486 0214499997312216413817065348017551043840662441282280361664890425737 7640956326482825258407669045608439490325290526337532316509087681336 6142423983095308065496618793819491200339194894940651323988166420800 8839555494223709673484007264270570116508907519615537018626479745638 1187856175457113400473810762763014953309735174180655479112660938034 3113785325328835333520249343659791293412848549709468263290758301930 7266533778255931433111096384805394085928398890779621047984791968687 6539987477095912788727475874439806779824968278272200926449944559380 4146087706419418104407582698056880389496546165879839046605876453418 1028990719429302177451997610449504319684150345551404482092893337865 7363052830619990077748726922998608279053171691876578860908941817057 9934048902184415597910926768627965975839524839267348836347456516870 1616624064242424122896111801061568234253939218005248345472377921991 1228595914191877491793823340010078128326506710281781396029120914720 1009478787525512633728842223538694900679276645116347581011938753196 5724212147603828477477457170457861041738574791130190858387789015233 4343013005282797038580359815182929600305682612091950943737325454171 0563838870475289505639610298436413609356416325894081379815116933386 1979733982167076100460798009601602482309694304380695662012321365014 0549586250615282588033022908385812478469315720323233601899469437647 7267218793768264318283826035645206994686302160488745284243635935586 2233350623594500289055858161127534178375045593612613085264082805121 3873177490200249552738734585956405160830583053770732533971552620444 7054295735383611136775231699727402929416742044232481138750756313190 7827218886405337469421384216992886294047963530515056078812636620649 7231257579019598873041195626227343728900516561111094111745277965482 7904712505819990774980638215593768855464988229389854082913251290764 7838632249478101675349169348928810420301561028338614382737816094634 1335383578340765314321417150655877547820252454780657301342277470616 7442419689526131642741046954746214837562882997718041867850845469656 1915090869587425118443583730659095146098045124740941137389992782249 2983367796011015387096129749705566301637307202750734759922943792393 8244274211861582361613178863925530951171884212985083072382597291441 4225157940388301135908333165185823496722125962181250705811375949552 5022747274674369887131926670769299199084467161228738858457584622726 5733307537355728239516169641751986750126817454293237382941438248143 7713986190671665757294580780482055951188168718807521297183263644215 5336787751274766940790117057509819575084563565217389544179875074523 8544552001335720333323798950743939053129182122552598337909094636302 0218535384885482506289771561696386071238277172562131346054940177041 3581731931763370136332252819127547191443450920711848838366818174263 3429496118700915030491653394647637177664391207983474946273978221715 0209067019030246976215127852195614207080646163137323651785397629209 2025500288962012970141379640038055734949269073535145961208674796547 7336929587736286356601437679640384307968641385634478013282612845891 8489852804804884418082163942397401436290348166545811445436646003249 0618763039502356402044530748210241366895196644221339200757479128683 8051751506346625693919377402835120756662608298904918772878338521785 2279204577184696585527879044756219266399200840930207567392536373562 8390829817577902153202106409617373283598494066652141198183810884515 4597728951645721318977979074919410131483685446396169046070301075968 1893374121757598816512700076126278916951040631585763753478742007022 2051070891257612361658026806815858499852631465878086616800733264676 8302063916972030648944056281954061906852420030534631566218913273090 6968735318164109451428803660599522024824888671155442910472192913424 8346438705368508648749099178812670565665387191049721820042371492740 1644609434598453925367061322106165330856620211889682340057526754861 0147699368873820958455221157192347968688816085363161586288015039594 9418529489227074410828207169303387818084936204018255222271010985653 4448172074707560192459155994310729495781978785905789400525401228675 1714251118435643718405356302418122547326609330271039796809106493927 2722683035410467632591355279683837705019855234621222858410557119921 7317179698043393177077507556270560478317798444476375602546370333692 4711422081551997369137197516324130274871219986340454824852457011855 3342675264715978310731245663429805221455494156252724028915333354349 3412178620370072603152798707718724912344944771479095207347613854254 8531155277330103034247683586549609372232400715451812973269208105842 4090557725645803681462234493189708138897143299831347617799679712453 7823107037391514738786921191875667003193212818968033226965944592862 1060743882741691946516226763254066507088107103039417886056489376981 6734159025925194611823642945652669372203155504700213598846292758012 5277154220166299548631303249123110296279237238997664168034971412265 2793190763632613681414551637665655983978848938173308266877990196288 6932296597379951931621187215455287394170243669885593888793316744533 3631195415184040882838151934212341228200309503133410507047601599879 8547252919066522247931971544033179483683737322082188577334162385644 1380700541913530245943913502554531886454796252260251762928374330465 1023610575835145507394433396102162296754614157811271970017386114942 7950141125328062125477581051297208846526315809480663368767014731073 3540717710876615935856814098212967730759197382973441445256688770855 3245708889583209938234321027182241147637327913575686154212528496579 0333509315277692550584564401055219264450531207375628774499816364633 2835816140330175813967359427327690448920361880386754955751806890058 5329272014939235005258451467069826285482578832673987352204572282392 9020714482221988558710289699193587307427781515975762076402395124386 0202032596596250212578349957710085626386118233813318509014686577064 0106762786175837727728958927460394039303372718738505369129571267150 6689668849388088514294360996201296675907922508227531381284985152690 2931700263136328942095797577959327635531162066753488651317323872438 7480635133145126448899675898288129254800764251865864902411111273013 5719718138160258317850693224400799865663537154408845486639318170839 5735780799059730839094881804060935959190907473960904410150516321749 6814121007657191774837673557510007336169223865374290794578032000423 3745280756615304292901449578062963413838355178359976470885134900485 6973697965238695845994595592090709058956891451141412684505462117945 0266117501669282602509507707782119504326173832235624376017767993627 9609936897519139496503335850715541843645685261667424368892037103749 5328425927131610537834980740739158633817967658425258036737206469351 2486522384813416638080615057048290598906964519364400185971204257230 0731641000991698752426037736217776343062161674488493081092990100951 7974541564251204822086714586849255132444266777127863728211331536224 3010918243912433802140462422233491535595168908162884879899882736304 4537243217428021575577796702166631704796972817248339284101564227450 7271779269399929740308072770395013581545142494049026536105825409373 1146531049433824843797186069372144446008267980024712294894057618538 9220342560830269705287662137737359439422411470707407290272546130735 8541745691419446487624357682397065703184168467540733466346293673983 6200040414007140542776324801327422026853936988697876070095900486846 5062677136307097982100655728510130660101078063374334477307347865388 1742681230743766066643312775356466578603715192922768440458273283243 8082128412187761320424604649008010547314267492608269221556374054862 4171703102791999694264562095561981645454766204502241144940474934983 2206807191352767986747813458203859570413466177937228534940031631599 5440936840895725334387029867178297703733328068017646395020900239419 3149911500910527682111951099906316615031158558283558260717941005252 8583611369961303442790173811787412061288182062023263849861515656451 2300477929675636183457681050433417695430675380411139285537925292413 4733948105053202570872818630729115891133594201476187266429156403637 1927602306283840650425441742335464549987055318726887926424102147363 6986254637471597443549434438997300517425251108773578863909468120966 7342815258591992485764048805507132981429935991146323991911395992675 2576359007446572810191805841807342227734721397723218231771716916400 1088261125490933611867805757223910181861685491085008852722743742120 8652485237245624869766224538481929867112945294551549703058591930719 8497105414181636968976131126744027009648667545934567059936995464500 5589216280479763656861333165639073957032720343891754152675009150111 9885687270884819553167693168127289214303137681801644547736751835349 7857924276463354162433601125960252109501612264110346083465648235597 9342740568688492244587454937767521203247038030354911575448312952758 9193989368087632768543876955769488142284431199859570072752139317683 7831770339130423060958999137314684569010422095161967070506420256733 8734461156552761759927271518776600102389447605397895169457088027287 3622512107622409181006670088347473760515628553394356584375627124124 4457651663064085939507947550920463932245202535463634444791755661725 9621871992791865754908578529500128402290350615149373101070094461510 1161371242376142672254173205595920278212932572594714641722497732131 6381845326555279604270541871496236585252458648933254145062642337885 6514646706042985647819684615936632889542997807225422647904006160197 5197500746054515006029180663827149701611098795133663377137843441619 4053121445291855180136575558667615019373029691932076120009255065081 5832755084993407687972523699870235679310268041367457189566414318526 7905471716996299036301554564509004480278905570196832831363071899769 9153166679208958768572290600915472919636381673596673959975710326015 5719202373485805211281174586100651525988838431145118948805521291457 7569914657753004138471712457796504817585639507289533753975582208777 7506072339445587895905719156733

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #16 Posted by Arnaud Amiel on 1 Apr 2006, 2:43 a.m.,in response to message #10 by Crawl I also have been spending a couple of hours trying to find a suitable brother in law... Still searching. Arnaud

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #17 Posted by Marcus von Cube, Germany on 2 Apr 2006, 11:19 a.m.,in response to message #10 by Crawl Take 3 A little complicated, isn't it? ```C = 2pi*r C+1m = 2pi*r+1m = 2pi*(r+x) = 2pi*r+2pi*x => 1m = 2*pi*x => x = 1m / 2pi ``` C: Circumphere r: Radius of the Earth (or of a tin can, doesn't matter at all) x: value to increase the radius to get the additional length. Lifting the wire on one end only needs a value of 2x. Program in RPN: ```PI / R/S 'Hulk Hogan' AVIEW END ``` Marcus Edited: 2 Apr 2006, 11:24 a.m.

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #18 Posted by Marcus von Cube, Germany on 2 Apr 2006, 11:44 a.m.,in response to message #8 by Crawl Quote: '-a^3+3*a*b-3*c' It's interesting that the solution doesn't depend on d.

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #19 Posted by Crawl on 2 Apr 2006, 3:01 p.m.,in response to message #18 by Marcus von Cube, Germany It's not difficult to see (even without doing much algebra) why the sum of CUBES wouldn't depend on D, though. Each coefficient of a polynomial in x^n + a * x^(n-1) + ... + d form (with leading coefficient of 1) is a symmetric polynomial of the roots. You can see that by factoring the polynimal ( (x-x1)*(x-x2)*... etc.) So, for the quartic case, if the roots are x1, x2, x3, x4... a = -(x1 + x2 + x3 + x4) and d = x1 * x2 * x3 * x4 -a^3, by the multinomial theorem, contains a sum of the cubes. It also has some cross terms, which the next few terms in the answer get rid of. But a^3 ONLY has products of three terms taken at a time (again, by the multinomial theorem). So there's no need for d, which has 4 terms taken at a time. If the problem was to find the sum of the FOURTH powers of the roots, then d would be needed.

 My Take on Take 3Message #20 Posted by Michael F. Coyle on 31 Mar 2006, 10:57 p.m.,in response to message #1 by Valentin Albillo This is a variation of the old "how far is the horizon" problem. Anyway, I get the formula: '(R+r)*SIN(ACOS(R/(R+r)))-R*ACOS(R/(R+r))-S/2' = 0 where R=6.4e6 meters, S, the slack = 1 meter, and we are solving for r, height above ground. I didn't bother to write a program, but just keyed it in and solved for r; I got 121.645 meters (399 feet). I used my trusty 48GX and the Solver. I don't know the brother-in-law's name but maybe our person was a princess sitting on a 40-story pile of mattresses. - Michael

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #21 Posted by Marcus von Cube, Germany on 3 Apr 2006, 4:57 a.m.,in response to message #1 by Valentin Albillo Hi Valentin, Take 5 is a battery drainer. I've written a small C program for my PB-2000C, recursive style: ```/* SSMC15-5 */ main() { int x,y; printf("x="); scanf("%d",&x); printf("y="); scanf("%d",&y); printf("f(%d,%d)=%d \n", x,y,f(x,y)); } int f(x,y) int x,y; { gotoxy(0,0);printf("%5d %5d\n",x,y); return x==0 ? y+1 : y==0 ? f(x-1,1) : f(x-1,f(x,y-1)); } ``` I tried it for the solutions you gave: ``` f(0,4) = 5 f(1,2) = 4 f(2,3) = 9 f(3,1) = 13 ``` And the results were as expected. But entering x=4 and y=2 at the prompts seems to be an almost endless exercise, so no solution this time. Marcus Edited: 3 Apr 2006, 4:58 a.m.

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #22 Posted by Klaus on 3 Apr 2006, 5:12 a.m.,in response to message #21 by Marcus von Cube, Germany Hi Marcus, this reminds me of the infamous Ackermann-function, which can be used as a benchmark for procedure calls. Greetings, Klaus

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #23 Posted by Marcus von Cube, Germany on 3 Apr 2006, 5:46 a.m.,in response to message #22 by Klaus Hi Klaus, you're perfectly right, it is the Ackermann-Péter function (See http://de.wikipedia.org/wiki/Ackermannfunktion or http://en.wikipedia.org/wiki/Ackermann_function). The english article lists the results. Valentin is asking for f(4,2) = 265536 - 3. I don't see a chance to calculate it with my simple C program because arbitrary precision would be needed. Marcus Edited: 3 Apr 2006, 6:08 a.m.

 Re: Sweet & Short Math Challenges #15: April 1st Spring SpecialMessage #24 Posted by Arnaud Amiel on 3 Apr 2006, 7:48 a.m.,in response to message #23 by Marcus von Cube, Germany I posted an RPL version a bit higher which can work in arbitrary precision. I tried to run it on EMU49 see what was the first error I would get. I had to stop before getting any error as my laptop was getting REALLY hot. If someone has a very cool machine it would be good to run it without the first line see what happens... Arnaud

S&SM#15: My Original Solutions and Comments
Message #25 Posted by Valentin Albillo on 3 Apr 2006, 7:45 a.m.,
in response to message #1 by Valentin Albillo

Hi all,

Thank you very much to all of you who were interested in this Spring Special challenge and managed to find the time to try and solve its various parts despite the very short deadline, I certainly hope you enjoyed it. Mostly, you did unexpectedly well, essentially solving all of them five, and I must confess it never ceases to amaze me, the extreme ingenuity displayed in both actual solutions and close calls.

These are my original solutions, plus comments:

## Take 1:

Though it might seem at first that you'd need to actually compute all four real and/or complex roots in order to be able to compute the sum of their cubes, actually this isn't so, because the asked value is a symmetric function of the roots (i.e.: it remains the same for every permutation of the roots) and so can be computed directly by using symmetric polynomials, a technique developed by Newton and Girard.

For this particular Take, the asked sum S as a function of the coefficients is simply:

```     S = -a3 + 3*a*b - 3*c
```
For example, if we have the equation:
```     x4 + x3 + 2*x2 + x + 1 = 0
```
the coefficients are:
```      a = 1, b = 2, c = 1, d = 1
```
```      S = -13 + 3*1*2 - 3*1 = 2
```
Let's check it. The roots are:
```      x1 = i
x2 = -i
x3 = -1/2 + Sqrt(3)/2*i
x4 = -1/2 - Sqrt(3)/2*i
```
and the sum of their cubes comes indeed to 2. This is my HP-15C solution to compute the required sum, assuming the coefficientes are previously placed in the stack like this:
```     T: d
Z: c
Y: b
X: a
```
the corresponding program listing is:
```     01 LBL A
02 CHS
03 X^2
04 LASTX
05  *
06 X<>Y
07 LASTX
08  *
09 GSB 0
10 X<>Y
11 LBL O
12  3
13  *
14  -
15 RTN
```
My HP-71B solution (32 bytes) is:
```     1 DESTROY ALL @ INPUT A,B,C @ DISP -A^3+3*A*B-3*C
```
By the way, the HP-71B is powerful enough that even if you didn't realize that the sum could be obtained by using symmetric polynomials and tried for brute force instead (computing the four real and/or complex roots and then adding up their cubes), you can still make do with this 2-liner:
```     1 DESTROY ALL @ OPTION BASE 0 @ DIM A(4) @ COMPLEX R(3),S @ MAT INPUT A
2 MAT R=PROOT(A) @ S=0 @ FOR I=0 TO 3 @ S=S+R(I)^3 @ NEXT I @ DISP S
```
For instance:
```     >RUN
A(0)? 1,-2,-3,4,-5  [ENTER]  ->  (14,0)
```
i.e.: the sum of the cubes of the four roots is the complex value (14, 0), which is of course the real value 14

## Take 2:

This 2-liner (64 bytes) for the HP-71B will find all solutions quickly:
```     1 FOR I=1 TO 10000 STEP 2 @ A=(I-1)/2 @ B=A+1 @ IF B*B-A*A=I THEN DISP I;
2 NEXT I @ DISP "OK"
```
Let's run it:
```     >RUN
1 3 5 7 9 11 [...] 9991 9993 9995 9997 9999
```
though from an eminently practical point of view, it can actually be simplified to the following 1-line, 30-byte program:
```    1 FOR I=1 TO 10000 STEP 2 @ DISP I; @ NEXT I @ DISP "OK"
```
which outputs just about the same. Both programs can have their upper limits increased if desired. For the given range, there are 5000 solutions in all

## Take 3:

A little geometry will duly solve this. Let's call the Earth's radius r, the subtended angle between the point of maximum height and the point of tangency we'll call x, and let's say the length of the cable not in contact with the Earth is 2a. The corresponding circular arc length is 2rx. Let d be the extra length added to the cable. Then 2a = 2rx + d. Hence a = rx + d/2, and so a/r = x + d/2r.

We also have, tan(x) = a/r. Therefore the equation to solve for the angle x is:

```     tan(x) = x + d/2r
```
Once we've got the angle x by solving it, we then have that the required height h over the ground is:
```     h = r(sec(x) - 1)
```
For our particular problem d = 1, r = 6,400,000, so we must solve:
```     tan(x) = x + d/2r = x + 1/12,800,000
```
which gives:
```     x = 0.00616549902401 radians
```
and from this, the height h is:
```    h = r(sec(x) - 1) = 6,400,000*(sec(0.00616549902401) - 1)
= 121.644736 m
```
If the man can stretch his arm to a height in excess of 120 m (360 feet) while comfortably sitting at ground level, he must be Mr. Reed Richards, alias "Mr. Fantastic", so his brother-in-law's name should be Johnny Storm, alias "The Human Torch", both members of the well-known Fantastic Four superhero team.

This is my 20-step program for the HP-15C which will return the height for any given extra length. First store the constant 12,800,000 (2r) in R0 and set RAD mode:

```     01 LBL A
02 STO1
03  0
04 SOLVE B
05 COS
06 1/X
07  1
08  -
09 RCL*0
10  2
11  /
12 RTN
13 LBL B
14 TAN
15 LASTX
16  -
17 RCL 1
18 RCL/0
19  -
20 RTN
```
Running it, we can get for instance:
```     For d =   1 m:    1 GSB A  ->  121.6448 m  (h)
d = 0.1 m:  0.1 GSB A  ->   26.2080 m
d =  10 m:   10 GSB A  ->  564.6400 m
```
This is the 2-line, 65-byte HP-71B version:
```     1 INPUT "D=";D @ R=6400000
2 DISP "H=";R*(1/COS(FNROOT(0,1,TAN(FVAR)-FVAR-D/(2*R)))-1)
```
Let's run it:
```     >RUN
D=1
H= 121.644736
```
As you may see, even a mere 0.1 meter (some 4 inches) of extra length can raise the highest point to a height of more than 26 meters (nearly 80 feet). Mr Fantastic would still be needed.

## Take 4:

This 1-line, 1-statement, 5-byte HP-71B program:
```     1 LIST
```
is surely the simplest one which fulfills the conditions. Upon running it, lo and behold:
```     >RUN
1 LIST
```
it does produce its own source code as output !

My, my, aren't we fortunate that HP-71B's BASIC is such a powerful programming language ?

## Take 5:

This recursively defined function is no other than the infamous Ackerman function, which among many interesting properties most of which are theoretically important, it has the unexpected characteristic that its value grows extremely quickly, even for very small input, which means a direct naive attempt will most likely overflow your handheld. This difficulty is easily overcome by doing a little research to see what we're trying to compute. We'll proceed to compute f(4,2) step by step:

1. Let's find f(1, y):

f(1,y) = f(0, f(1, y-1)) = f(1, y-1)+1

and f(1,0) = f(0,1) = 1+1 = 2

so we have the difference equation (not differential):

f(1, y) = f(1, y-1)+1 with initial condition f(1,0) = 2

whose exact solution is: f(1,y) = y + 2

2. Let's find f(2, y):

f(2, y) = f(1, f(2, y-1)) = f(2, y-1)+2

and f(2,0) = f(1,1) = 1+2 = 3

so we have the difference equation:

f(2, y)= f(2, y-1)+2 with initial condition f(2,0) = 3

whose exact solution is: f(2,y) = 2*y + 3

3. Let's find f(3, y):

f(3, y) = f(2, f(3, y-1)) = 2*f(3, y-1)+3

and f(3,0) = f(2,1) = 2*1+3 = 5

so we have the difference equation:

f(3, y) = 2*f(3, y-1)+3 with initial condition f(3,0)=5

whose exact solution is: f(3, y) = 2y+3-3

4. Now for f(4,2):

f(4,2) = f(3, f(4, 1)) = f(3, f(3, f(4, 0)) = f(3, f(3, f(3, 1))) = f(3, f(3, 13)) = f(3, 65533) = 265536 - 3

and our program must simply compute this value, exactly. This is my 9-line program for the HP-71B which does the job:

```     1 DESTROY ALL @ OPTION BASE 0 @ N=65536 @ M=9 @ DIM A(1) @ K=10^M
2 A(0)=1 @ P=0 @ L=9 @ R=2^L @ FOR J=0 TO N-L STEP L @ MAT A=(R)*A @ GOSUB 8
3 IF NOT MOD(J,27) THEN DIM A(UBND(A,1)+1)
4 NEXT J @ R=MOD(N,L) @ IF R THEN MAT A=(2^R)*A @ GOSUB 8
5 A(0)=A(0)-3 @ J=0 @ PRINT @ PRINT STR\$(A(P));
6 FOR I=P-1 TO 0 STEP -1 @ J=J+1 @ IF J=7 THEN PRINT @ J=0
7 A\$=STR\$(A(I)) @ PRINT RPT\$("0",M-LEN(A\$));A\$; @ NEXT I @ END
8 FOR I=0 TO P @ A(I+1)=A(I+1)+A(I) DIV K @ A(I)=MOD(A(I),K) @ NEXT I
9 P=P+SGN(A(P+1)) @ RETURN
```
You'll need 20 Kb RAM in your HP-71B or Emu71 to run it. After less than 25 minutes under Emu71 or just one week in a physical HP-71B, it outputs the exact, 19,729-digit result that follows.

Best regards from V.

```>RUN
20035299304068464649790723515602557504478254755697514192650169737108940595563114
53089506130880933348101038234342907263181822949382118812668869506364761547029165
04187191635158796634721944293092798208430910485599057015931895963952486337236720
30029169695921561087649488892540908059114570376752085002066715637023661263597471
44807111774815880914135742720967190151836282560618091458852699826141425030123391
10827360384376787644904320596037912449090570756031403507616256247603186379312648
47037437829549756137709816046144133086921181024859591523801953310302921628001605
68670105651646750568038741529463842244845292537361442533614373729088303794601274
72495841486491593064725201515569392262818069165079638106413227530726714399815850
88112926289011342377827055674210800700652839633221550778312142885516755540733451
07213112427399562982719769150054883905223804357045848197956393157853510018992000
02414196370681355984046403947219401606951769015611972698233789001764151719005113
34663068981402193834814354263873065395529696913880241581618595611006403621197961
01859534802787167200122604642492385111393400464351623867567078745259464670903886
54774348321789701276445552940909202195958575162297333357615955239488529757995402
84719435299135437637059869289137571537400019863943324648900525431066296691652434
19174691389632476560289415199775477703138064781342309596190960654591300890188887
58808473362595606544488850144733570605881709016210849971452956834406197969056546
98136311620535793697914032363284962330464210661362002201757878518574091620504897
11781820400187282939943446186224328009837323764931814789848119452713007440220765
68091037620399920349202390662626449190916798546151577883906039772075927937885224
12943010174580868622633692847258514030396155585643303854506886522131148136384083
84778263790459607186876728509763471271988890680478243230394718650525660978150729
86114143030581692792497140916105941718535227588750447759221830115878070197553572
22414000195481020056617735897814995323252085897534635470077866904064290167638081
61740550405117670093673202804549339027992491867306539931640720492238474815280619
16690093380573212081635070763435166986962502096902316285935007187419057916124153
68975148082619048479465717366010058924766554458408383347905441448176842553272073
15586349347605137419779525190365032198020108764738368682531025183377533908861426
18480037400808223810407646887847164755294532694766170042446106331123802113458869
45322001165640763270230742924260515828110703870183453245676356259514300320374327
40780879056283663406965030844225855967039271869461158513793386475699748568670079
82396060439347885086164926030494506174341236582835214480672667684180708375486221
14082365798029612000274413244384324023312574035450193524287764308802328508558860
89962774458164680857875115807014743763867976955049991643998284357290415378143438
84730348426190338884149403136613985425763557710533558020662218557706008255128889
33322264362819848386132395706761914096385338323743437588308592337222846442879962
45605476932428998432652677378373173288063210753211238680604674708428051166488709
08477029120816110491255559832236624486855665140268464120969498259056551921618810
43412268389962830716548685255369148502995396755039549383718534059000961874894739
92880432496373165753803673586710175783994818471798498246948060532081996066183434
01247609663951977802144119975254670408060849934417825628509272652370989865153946
21930046073645079262129759176982938923670151709920915315678144397912484757062378
04600009918293321306880570046591458387208088016887445835557926258465124763087148
56631352893416611749061752667149267217612833084527393646924458289257138887783905
63004824837998396920292222154861459023734782226825216399574408017271441461795592
26175083889020074169926238300282286249284182671243405751424188569994272331606998
71298688277182061721445314257494401506613946316919762918150657974552623619122484
80638900336690743659892263495641146655030629659601997206362026035219177767406687
77463549375318899587866282125469797102065747232721372918144666659421872003474508
94283091153518927111428710837615922238027660532782335166155514936937577846667014
57179719012271178127804502400263847587883393968179629506907988171216906869295382
48529830023476068454114178139110648560236549754227497231007615131870024053910510
91381784372179142252858743209852495787803468370333781842144401713868812424998441
86181292711985333153825673218704215306311977485352146709553346263366108646673322
92409879849256691109516143618601548909740241913509623043612196128165950518666022
03071561368473236466086890501426391390651506390819937885231836505989729912540447
94434251667742996598118492331515552728832740283526884424087528112832899806259126
73699546247341543333500147231430612750390307397135252069338173843322950701049061
86753943313078479801565513038475815568523621801041965025559618193498631591323303
60964619059902361126811960234418433633345949276319461017166529138237171823942992
16272538461776065694542297877071383198817036964588689811863210976900355735884624
46483570629145305275710127887202796536447972402540544813274839179412882642383517
19491972097971459368875371987291308317380339110161285474153773777159517280841116
27597186384924222802373441925469991983672192131287035585307966942713416391033882
75431861364349010094319740904733101447629986172542442335561223743571582593338280
49862438924982227807159517627578471094751190334822414120251826887137281931042534
78196128440176479531505057110722974314569915223451643121848657575786528197564843
50895838472292353455946452121583165775147129870822590929265563883665112068194383
69041162526687100445602437042006637090019411855571604720446436969328500600469281
40507119069261393993902735534545567470314903886022024639948260501762431969305640
66636662609020704888743889890749815286544438186291738290105182086993638266186830
39152732645812867828066013375000965933646251460917231803129303478774212346791184
54791311109897794648216922505629399956793483801699157439700537542134485874586856
04728675106542334189383909911058646559511364606105515683854121745980180713316361
25730796111683438637676673073545834947897883163301292408008363568259391571131309
78030516441716682518346573675934198084958947940983292500086389778563494693212473
42610306271374507728615692259662857385790553324064184901845132828463270926975383
08673084091422476594744399733481308109863994173797896570106870267341619671965915
99588537834822988270125605842365589539690306474965584147981310997157542043256395
77607048510088157829140825077773855979012912940730946278594450585941227319481275
32251523248015034665190482289614066468903051025109162377704484862302294889667113
80555607956620732449373374027836767300203011615227008921843515652121379215748206
85935692079021450227713309998772945959695281704458218195608096581170279806266989
12050615607423256868422713062950098644218534708104071289176469065508361299166947
78023822502789667843489199409657361704586786242554006942516693979292624714524945
40885842272615375526007190433632919637577750217600519580069384763578958687848953
68721228985578068265181927036320994801558744555751753127364714212955364940843855
86615208012115079075068553344489258693283859653013272046970694571546959353658571
78889486233329246520273585318853337094845540333656535698817258252891805663548836
37437933484118455801683318276768346462919956055134700391478768086403226296166415
60667508153710646723108461964247537490553744805318226002710216400980584497526023
03564003808347205314994117296573678506642140084269649710324191918212121320693976
91439233683747092282677387081322366800869247034915868409911530983154120635661231
87504305467536983230827966457417620806593177265685841681837966106144963432544111
70694170022265781735835125982108076910196105222926387974504901925431190062056190
65774524161919131875339840493439768233102984658933183730158095925228292068208622
30332585280119266496314441316442773003237792274712330696417149945532261035475145
63129066885434542686978844774298177749371011761465162418361668025481529633530849
08499430067636548061029400946937506098455885580439704859144495844450799784970455
83550685408745163316464118083123079704389849190506587586425810738422420591191941
67418249045270028826398305795005734171148703118714283418449915345670291528010448
51451760553069714417613685823841027876593246626899784183196203122624211773914772
08004883578333569204533935953254564897028558589735505751235129536540502842081022
78524877660357424636667314868027948605244578267362623085297826505711462484659591
42102781227889414481639949738818846227682448516220518170767221698632657016543169
19742651230041757329904473537672536845792754365412826553581858046840069367718605
02007054724754840080553042495185449526724726134731817474218007857469346544713603
69758841180294080396167469462885406791721386012254195038197045384172680063988206
56328792839582708510919958839448297775647152026132871089526163417707151642899487
95356485455355314875497813400996485449863582484769059003311696130376612792346432
31297066284113074270462020320133683503854253603136367635752126047074253112092334
02837482949453104727418969287275572027615272268283376741393425652653283068469997
59709775000556088993268502504921288406827413988163154045649035077587168007405568
57240217586854390532281337707074158307562696283169556874240605277264858530506113
56384851965918968649596335568216975437621430778665934730450164822432964891270709
89807667662567151726906205881554966638257382927418208227896068448822298339481667
09840390242835143068137672534601260072692629694686727507943461904399966189796119
28750519442356402644303271737341591281496056168353988188569484045342311424613559
92527233006488162746672352375123431189344211888508507935816384899448754475633168
92138696755743027379537852625423290248810471819390372206668947022042588368958409
39998453560948869946833852579675161882159410981624918741813364726965123980677561
94791255795744647142786862405375057610420426714936608498023827468057598259133100
69199419046519065311719089260779491192179464073551296338645230356733455880333131
97080365457184791550432654899559705862888286866606618021882248602144999973122164
13817065348017551043840662441282280361664890425737764095632648282525840766904560
84394903252905263375323165090876813366142423983095308065496618793819491200339194
89494065132398816642080088395554942237096734840072642705701165089075196155370186
26479745638118785617545711340047381076276301495330973517418065547911266093803431
13785325328835333520249343659791293412848549709468263290758301930726653377825593
14331110963848053940859283988907796210479847919686876539987477095912788727475874
43980677982496827827220092644994455938041460877064194181044075826980568803894965
46165879839046605876453418102899071942930217745199761044950431968415034555140448
20928933378657363052830619990077748726922998608279053171691876578860908941817057
99340489021844155979109267686279659758395248392673488363474565168701616624064242
42412289611180106156823425393921800524834547237792199112285959141918774917938233
40010078128326506710281781396029120914720100947878752551263372884222353869490067
92766451163475810119387531965724212147603828477477457170457861041738574791130190
85838778901523343430130052827970385803598151829296003056826120919509437373254541
71056383887047528950563961029843641360935641632589408137981511693338619797339821
67076100460798009601602482309694304380695662012321365014054958625061528258803302
29083858124784693157203232336018994694376477267218793768264318283826035645206994
68630216048874528424363593558622333506235945002890558581611275341783750455936126
13085264082805121387317749020024955273873458595640516083058305377073253397155262
04447054295735383611136775231699727402929416742044232481138750756313190782721888
64053374694213842169928862940479635305150560788126366206497231257579019598873041
19562622734372890051656111109411174527796548279047125058199907749806382155937688
55464988229389854082913251290764783863224947810167534916934892881042030156102833
86143827378160946341335383578340765314321417150655877547820252454780657301342277
47061674424196895261316427410469547462148375628829977180418678508454696561915090
86958742511844358373065909514609804512474094113738999278224929833677960110153870
96129749705566301637307202750734759922943792393824427421186158236161317886392553
09511718842129850830723825972914414225157940388301135908333165185823496722125962
18125070581137594955250227472746743698871319266707692991990844671612287388584575
84622726573330753735572823951616964175198675012681745429323738294143824814377139
86190671665757294580780482055951188168718807521297183263644215533678775127476694
07901170575098195750845635652173895441798750745238544552001335720333323798950743
93905312918212255259833790909463630202185353848854825062897715616963860712382771
72562131346054940177041358173193176337013633225281912754719144345092071184883836
68181742633429496118700915030491653394647637177664391207983474946273978221715020
90670190302469762151278521956142070806461631373236517853976292092025500288962012
97014137964003805573494926907353514596120867479654773369295877362863566014376796
40384307968641385634478013282612845891848985280480488441808216394239740143629034
81665458114454366460032490618763039502356402044530748210241366895196644221339200
75747912868380517515063466256939193774028351207566626082989049187728783385217852
27920457718469658552787904475621926639920084093020756739253637356283908298175779
02153202106409617373283598494066652141198183810884515459772895164572131897797907
49194101314836854463961690460703010759681893374121757598816512700076126278916951
04063158576375347874200702220510708912576123616580268068158584998526314658780866
16800733264676830206391697203064894405628195406190685242003053463156621891327309
06968735318164109451428803660599522024824888671155442910472192913424834643870536
85086487490991788126705656653871910497218200423714927401644609434598453925367061
32210616533085662021188968234005752675486101476993688738209584552211571923479686
88816085363161586288015039594941852948922707441082820716930338781808493620401825
52222710109856534448172074707560192459155994310729495781978785905789400525401228
67517142511184356437184053563024181225473266093302710397968091064939272722683035
41046763259135527968383770501985523462122285841055711992173171796980433931770775
07556270560478317798444476375602546370333692471142208155199736913719751632413027
48712199863404548248524570118553342675264715978310731245663429805221455494156252
72402891533335434934121786203700726031527987077187249123449447714790952073476138
54254853115527733010303424768358654960937223240071545181297326920810584240905577
25645803681462234493189708138897143299831347617799679712453782310703739151473878
69211918756670031932128189680332269659445928621060743882741691946516226763254066
50708810710303941788605648937698167341590259251946118236429456526693722031555047
00213598846292758012527715422016629954863130324912311029627923723899766416803497
14122652793190763632613681414551637665655983978848938173308266877990196288693229
65973799519316211872154552873941702436698855938887933167445333631195415184040882
83815193421234122820030950313341050704760159987985472529190665222479319715440331
79483683737322082188577334162385644138070054191353024594391350255453188645479625
22602517629283743304651023610575835145507394433396102162296754614157811271970017
38611494279501411253280621254775810512972088465263158094806633687670147310733540
71771087661593585681409821296773075919738297344144525668877085532457088895832099
38234321027182241147637327913575686154212528496579033350931527769255058456440105
52192644505312073756287744998163646332835816140330175813967359427327690448920361
88038675495575180689005853292720149392350052584514670698262854825788326739873522
04572282392902071448222198855871028969919358730742778151597576207640239512438602
02032596596250212578349957710085626386118233813318509014686577064010676278617583
77277289589274603940393033727187385053691295712671506689668849388088514294360996
20129667590792250822753138128498515269029317002631363289420957975779593276355311
62066753488651317323872438748063513314512644889967589828812925480076425186586490
24111112730135719718138160258317850693224400799865663537154408845486639318170839
57357807990597308390948818040609359591909074739609044101505163217496814121007657
19177483767355751000733616922386537429079457803200042337452807566153042929014495
78062963413838355178359976470885134900485697369796523869584599459559209070905895
68914511414126845054621179450266117501669282602509507707782119504326173832235624
37601776799362796099368975191394965033358507155418436456852616674243688920371037
49532842592713161053783498074073915863381796765842525803673720646935124865223848
13416638080615057048290598906964519364400185971204257230073164100099169875242603
77362177763430621616744884930810929901009517974541564251204822086714586849255132
44426677712786372821133153622430109182439124338021404624222334915355951689081628
84879899882736304453724321742802157557779670216663170479697281724833928410156422
74507271779269399929740308072770395013581545142494049026536105825409373114653104
94338248437971860693721444460082679800247122948940576185389220342560830269705287
66213773735943942241147070740729027254613073585417456914194464876243576823970657
03184168467540733466346293673983620004041400714054277632480132742202685393698869
78760700959004868465062677136307097982100655728510130660101078063374334477307347
86538817426812307437660666433127753564665786037151929227684404582732832438082128
41218776132042460464900801054731426749260826922155637405486241717031027919996942
64562095561981645454766204502241144940474934983220680719135276798674781345820385
95704134661779372285349400316315995440936840895725334387029867178297703733328068
01764639502090023941931499115009105276821119510999063166150311585582835582607179
41005252858361136996130344279017381178741206128818206202326384986151565645123004
77929675636183457681050433417695430675380411139285537925292413473394810505320257
08728186307291158911335942014761872664291564036371927602306283840650425441742335
46454998705531872688792642410214736369862546374715974435494344389973005174252511
08773578863909468120966734281525859199248576404880550713298142993599114632399191
13959926752576359007446572810191805841807342227734721397723218231771716916400108
82611254909336118678057572239101818616854910850088527227437421208652485237245624
86976622453848192986711294529455154970305859193071984971054141816369689761311267
44027009648667545934567059936995464500558921628047976365686133316563907395703272
03438917541526750091501119885687270884819553167693168127289214303137681801644547
73675183534978579242764633541624336011259602521095016122641103460834656482355979
34274056868849224458745493776752120324703803035491157544831295275891939893680876
32768543876955769488142284431199859570072752139317683783177033913042306095899913
73146845690104220951619670705064202567338734461156552761759927271518776600102389
44760539789516945708802728736225121076224091810066700883474737605156285533943565
84375627124124445765166306408593950794755092046393224520253546363444479175566172
59621871992791865754908578529500128402290350615149373101070094461510116137124237
61426722541732055959202782129325725947146417224977321316381845326555279604270541
87149623658525245864893325414506264233788565146467060429856478196846159366328895
42997807225422647904006160197519750074605451500602918066382714970161109879513366
33771378434416194053121445291855180136575558667615019373029691932076120009255065
08158327550849934076879725236998702356793102680413674571895664143185267905471716
99629903630155456450900448027890557019683283136307189976991531666792089587685722
90600915472919636381673596673959975710326015571920237348580521128117458610065152
59888384311451189488055212914577569914657753004138471712457796504817585639507289
5337539755822087777506072339445587895905719156733
```

Edited: 3 Apr 2006, 7:47 a.m.

Go back to the main exhibit hall