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\ 026266371632383860581109563509543To 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
0 Comments:
Post a Comment
<< Home