Friday, June 01, 2007

Maths Olympics

Recently my daugther attended the Mathematics Olympics for Secondary 2. The questions are very tough if you have not been exposed to the type of questions before. One of the questions is pretty interesting.

Find the latest integer n so that n6021 < 20072007.

Not many people know how big is 20072007. If you use bc (arbitrary precision arithmetic language) to calculate it, it is a 6629 digit number.

So how can we approach this problem without having to deal with 6000+ digits.
6021 is 3 times of 2007, so we can express
n6021 as
n32007
Using the trail and error method, we can tabulate the result as:
n=10, n3=1000 < 2007
n=11, n3=1331 < 2007
n=12, n3=1728 < 2007
n=13, n3=2197 > 2007

So, the answer is 12

$ echo 2007^2007 | bc
16314605714687673100219161988221590518292210898740437841876506892750\
32306039423940369656182671626918374428665007728310641726207038681918\
23136702404167821902979921698186677089033622516321277953102421415380\
52881817063065329725414186570424721165880384220836219727730342712190\
37547038078493298854228413412450765335802752810679631982070064711707\
56994904826360657191473471275712342626409252812000487654952457462581\
25202397471862500575253203957986559953029179221497185241787894245109\
51506284252195025848010707100693306754335210537773553923807001377973\
58190841023173651478340362529204455978523734694649333587437048551880\
84344987860972778473042539830626220900910030243133077748096636794353\
16457852288885788183704321212603620156876288242227673033902489461859\
80807205983674431470103187228509985963442849376025881515659139204354\
57334048169514769124351395926915548900005107939870885748926502983652\
48220739239828923170534565961757683913268494073903341978940401041341\
24158904437217633744227156627420692310366588876904474906119640656336\
00909055629673774341172101831114453521702586164711667890001015971356\
60276401463142043929976624709724328792829957422043087537178795758647\
72185461767393859241999232092091753999161030318269214754924571963159\
35520624812251694955876845371629366273520636698693605424704420404631\
75277434551058391143650208928358475502339174967420269679902664658114\
23441325364666899042860424269755985756717730999047598611204004019487\
05037492513989337593522479668752257755675941902099185237554143748651\
76084285432698562312888918263670859517256741096260219051804661166619\
77156782563640767810527747055628531062056538632420611318856864435605\
98573568085436649055893711511908754786711917259735123805058932226875\
09020048745112007771764955307557550322001919379536452269156637570639\
67686895988403526418230539376546037003876670242151992373967447858965\
32371190719225599092102935960432876642206996867191908197903254065184\
66772118566829478154758078361829805339842140536877388530591895758845\
74615755305866464237994838787908227762252835497894144677604759903050\
56214887675010008762806122865755121275564759677904950783893207351021\
21793547077526595680554400368459226450944178849240467865779814317007\
96876505317193541397691960050013423154588306446442511274723228366073\
99740758368268646735204080379101950673539512645517752083915627087436\
66342779749004724047925157702126529475456581827940549061219833542771\
72666791641130825385603816826728793107694318470910676883660956902086\
59579147945702522853473552635534140382309303777950425443446724647072\
84039885465320015844579846408011500806127198942953456479287429126124\
58187025149566132957578262005878966556171671947012422179587596926224\
48413221909265362849341101538896719374297181506945626681830899361082\
17588258048154216467741811634089431627204908200906712352236452851164\
60870051555430826004956456747145900922832888740550701604291930516794\
53804271088240995714495287536761378107585304471702025690381237435699\
62867717292953981124669065011683502890758991080085205157633970212891\
98777309368701179857410923501969865110478773653903699197912297908533\
71149722723292678177205635678230292598408904569266566529096965940687\
19800187410667900893753388917161120090709121225671327994837556358866\
13795364895358454179682944936819599409259644069296990066176672218326\
10569446092009445906651399279429326070744029719496103157306940293382\
08652605749532755522690122699195850782355410608547470555886945614660\
28849763565012828241503887371454415825187174123047124428965559186350\
65661067953888197801888330944283778895151118014938632162825657485422\
26873379147497009487850977528543889031689799484755702907033188341688\
57086162026884996378694574719417715017198218671864779969442373083947\
84224584936854774880083798459580587181441861962025043001696668942099\
98369361531152251402670787887047071049415711093008135194582239773277\
57730018467737893821357739016393737981517063929164948629278989863490\
66462204249411800881288288291970583303627128619570872408141516094456\
83837112137017595507346794006856000647005501898922929846153939218796\
28234593579234420657377664780055273852674449396670561737910057331770\
53405452811154572480773839659370346376909955589954534463995402397547\
55090554901741064115038670213867607618630149352412903118245252687275\
28109561678498436676798923797165313359732911821400623859409924152069\
06300260638828041177167702847188712306493492372142866618404908913176\
54030952366549559176082480786655059388809520507182637615683247714988\
05191492633132029599544921486661970299947588786678189871088966477407\
52512996563850623228109536022666509972476172556459154412193755524859\
28452331588277656632220424016664113248809498813370962561820162791582\
64121448823383689967724103592671517706815568744426523608840138911714\
53958944518234290650299585576981492919941107102609478933946462619302\
48865632368726622732906937659050660925986430541337820914319653668221\
87349651540078364469161738550494782857953599406614823850511779698786\
91838865273359122035277482634624991021675924624312254360293884842917\
65838307747253780974059548132381415125202990686958323920598730920623\
83252041705054542282692895103797418414876506955754092950593171511526\
03651256685226830058555083998194070710847307757088197896172035753443\
57325024752384875269065693702994828638438768496534182574105672247872\
16889073273120095695064749134557169837596440817787277202590296656949\
48573652672557136771335615479698964295228224311865290533314649278929\
66378562879105977303922021842036171103420525191259589291180958162828\
53849025184090592088836475653212594663891594930011800278301810320167\
71271739342026383819163505909340986688942636949341034442899607560777\
48743959210409197647213006839217933959866202483201890809519278801288\
89774489640070710220962719764159839606000869526896455498122625138520\
03473593771023384202960841337266822055244894318115626747268831051684\
93368590796032830924999538553468389382057082607007101680887865179417\
56230281766141812283600778826785130821021267795745725254521386017285\
26298885351305296325067178476137349370135741313308883039679816779268\
89819182812687810885966489071842746337245202749132624149354170939165\
16259303899012457012515608202326844412337496478945032118391923014778\
60791546940874717049537071793531373218290246791145310292221059372892\
64816915738818462542773732790559090793017150142535888474230492964601\
87531820919736515493904236213757675608136303680989586717189185046309\
78276773061725084597786832034498958720078262844355265962017842479132\
62269519023741579612330789171572662737099118044136909873639373744006\
57859538070736932317321882339952581950548422144343493289702293960474\
93455994166543113414231137214737093262742407103151085798658468378983\
026266371632383860581109563509543
To count how many digit there, we need to get rid of the backslash and the newline
$ echo 2007^2007 | bc | sed -e 's/\\//' | awk '{printf("%s",$1)}' | wc -c
6629

Labels: ,

0 Comments:

Post a Comment

<< Home