Challenge TIME!

Whether you're a newbie or an experienced programmer, any questions, help, or just talk of any language will be welcomed here.

Moderator: Coders of Rage

User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Challenge TIME!

Post by avansc »

okay, i like doing programming challenges, they keep me on my toes.

challenge :

n! = n·(n – 1)·(n – 2) · · · 3·2·1
Example: 6! = 6·5·4·3·2·1 = 720

you quest is to write a program that will calculate factorial(n) so factorial(6) = 720.

the person that gets the highest number will get a free IBM PC Assembly Language and Programming book
you may use any language you want, as long as it is 32bit.(because im sure most only have 32 bit cpu's and os')

i'll make one to and post what i managed to get. also bonus points, i'll add a student copy of VS2008 if you can five me the correct Big O for this equation.
Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: Challenge TIME!

Post by Falco Girgis »

:lol: !!!

Rofl, this is badass. So is the goal to be able to calculate the highest factorial?
User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Re: Challenge TIME!

Post by avansc »

GyroVorbis wrote::lol: !!!

Rofl, this is badass. So is the goal to be able to calculate the highest factorial?
yeah, who ever does that will get some goodies. i have a bunch of duplicate books. as well as 10 copies of VS2008, legal with keys. that i can give away.
so im hoping this will motivate people to do well.

i'll soon post a high factorial that i think will set a good base line.
Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Re: Challenge TIME!

Post by avansc »

okay. here is just a quick range.

also not that the entire program ran in 0.062000 second. or 62 milliseconds

Start of program.
Favtorial(1) = 1
Favtorial(2) = 2
Favtorial(3) = 6
Favtorial(4) = 24
Favtorial(5) = 120
Favtorial(6) = 720
Favtorial(7) = 5040
Favtorial(8) = 40320
Favtorial(9) = 362880
Favtorial(10) = 3628800
Favtorial(11) = 39916800
Favtorial(12) = 479001600
Favtorial(13) = 6227020800
Favtorial(14) = 87178291200
Favtorial(15) = 1307674368000
Favtorial(16) = 20922789888000
Favtorial(17) = 355687428096000
Favtorial(18) = 6402373705728000
Favtorial(19) = 121645100408832000
Favtorial(20) = 2432902008176640000
End of program.
Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Re: Challenge TIME!

Post by avansc »

no one interested in this? :roll:
Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Re: Challenge TIME!

Post by avansc »

Time : 0
Start of program.
Favtorial(10000) = 28462596809170545189064132121198688901480514017027992307941799942744113400037644437729907867
577847758158840621423175288300423399401535187390524211613827161748198241998275924182892597878981242531205946
599625986706560161572036032397926328736717055741975962099479720346153698119897092611277500484198845410475544
642442136573303076703628825803548967461117097369578603670191071512730587281041158640561281165385325968425825
995584688146430425589836649317059251717204276597407446133400054194052462303436869154059404066227828248371512
038322178644627183822923899638992827221879702459387693803094627332292570555459690027875282242544348021127559
019169425429028916907219097083690539873747452483372899521802363282741217040268086769210451555840567172555372
015852132829034279989818449313610640381489304499621599999359670892980190336998484404665419236258424947163178
961192041233108268651071354516845540936033009607210346944377982349430780626069422302681885227592057029230843
126188497606560742586279448827155956831533440534425446648416894580425709461673613187605234982286326452921529
423479870603344290737158688499178932580691483168854251956006172372636323974420786924642956012306288720122652
952964091508301336630982733806353972901506581822574295475894399765113865541208125788683704239208764484761569
001264889271590706306409661628038784044485191643790807186112370622133415415065991843875961023926713276546986
163657706626438638029848051952769536195259240930908614471907390768585755934786981720734372093104825475628567
777694081564074962275254993384112809289637516990219870492405617531786346939798024619737079041868329931016554
150742308393176878366923694849025999607729684293977427536263119825416681531891763234839190821000147178932184
227805135181734921901146246875769835373441456013122615221391178759688367364087207937002992038279198038702372
078039140312368997608152840306051116709484722224870389199993442071395836983063962232079115624044250808919914
319837120445598344047556759489212101498152454543594285414390843564419984224855478532163624030098442855331829
253154206551237079705816393460296247697010388742206441536626733715428700789122749340684336442889847100840641
600093623935261248037975293343928764398316390312776450722479267851700826669598389526150759007349215197592659
192708873202594066382118801988854748266048342256457705743973122259700671936061763513579529821794290797705327
283267501488024443528681645026165662837546519006171873442260438919298506071515390031106684727360135816706437
861756757439184376479658136100599638689552334648781746143243573224864326798481981458432703035895508420534788
493364582482592033288089025782388233265770205248970937047210214248413342465268206806732314214483854074182139
621846870108359582946965235632764870475718351616879235068366271743711915723361143070121120767608697851559721
846485985918643641716850899625516820910793570231118518174775010804622585521314764897490660752877082897667514
951009682329689732000622392888056658036140311285465929084078033974900664953205873164948093883816198658850827
382468034897864757116679890423568018303504133875731972630897909435710687797301633918087868474943633533893373
586906405848417828065196275826434429258058422212947649402948622670761832988229004072390403733168207417413251
656688443079339447019208905620788387585342512820957359307018197708340163817638278562539516825426644614941044
711579533262372815468794080423718587423026200264221822694188626212107297776657401018376182280136857586442185
863011539843712299107010094061929413223202773193959467006713695377097897778118288242442920864816134179562017
471831609687661043140497958198236445807368209404022211181530051433387076607063149616107771117448059552764348
333385744040212757031851527298377435921878558552795591028664457917362007221858143309977294778923720717942857
756271300923982397921957581197264742642878266682353915687857271620146192244266266708400765665625807109474398
740110772811669918806268726626565583345665007890309050656074633078027158530817691223772813510584527326591626
219647620571434880215630815259005343721141000303039242866457207328473481712034168186328968865048287367933398
443971236735084527340196309427697652684170174990756947982757825835229994315633322107439131550124459005324702
680312912392297979030417587823398622373535054642646913502503951009239286585108682088070662734733200354995720
397086488066040929854607006339409885836349865466136727880748764700702458790118046518296111277090609016152022
111461543158317669957060974618085359390400067892878548827850938637353703904049412684618991272871562655001270
833039950257879931705431882752659225814948950746639976007316927310831735883056612614782997663188070063044632
429112260691931278881566221591523270457695867512821990938942686601963904489718918597472925310322480210543841
044325828472830584297804162405108110326914001900568784396341502696521048920272140232160234898588827371428695
339681755106287470907473718188014223487248498558198439094651708364368994306189650243288353279667190184527620
551085707626204244509623323204744707831190434499351442625501701771017379551124746159471731862701565571266295
855125077711738338208419705893367323724453280456537178514960308802580284067847809414641838659226652806867978
843250660537943046250287105104929347267471267499892634627358167146935060495110340755404658170393481046758485
625967767959768299409334026387269378365320912287718077451152622642548771835461108886360843272806227776643097
283879056728618036048633464893371439415250259459652501520959536157977135595794965729775650902694428088479761
276664847003619648906043761934694270444070215317943583831051404915462608728486678750541674146731648999356381
312866931427616863537305634586626957894568275065810235950814888778955073939365341937365700848318504475682215
444067599203138077073539978036339267334549549296668759922530893898086430606532961793164029612492673080638031
873912596151131890359351266480818568366770286537742390746582390910955517179770580797789289752490230737801753
142680363914244720257728891784950078117889336629750436804214668197824272980697579391742229456683185815676816
288797870624531246651727622758295493421483658868919299587402095696000243560305289829866386892076992834030549
710266514322306125231915131843876903823706205399206933943716880466429711476743564486375026847698148853105354
063328845062012173302630676481322931561043551941761050712449024873277273112091945865137493190965162497691657
553812198566432207978666300398938660238607357858114394715872800893374165033792965832618436073133327526023605
115524227228447251463863269369763762510196714380125691227784428426999440829152215904694437282498658085205186
576292992775508833128672638418713277780874446643875352644733562441139447628780974650683952982108174967958836
452273344694873793471790710064978236466016680572034297929207446822322848665839522211446859572858403863377278
030227591530497865873919513650246274195899088374387331594287372029770620207120213038572175933211162413330422
773742416353553587977065309647685886077301432778290328894795818404378858567772932094476778669357537460048142
376741194182671636870481056911156215614357516290527351224350080604653668917458196549482608612260750293062761
478813268955280736149022525819682815051033318132129659664958159030421238775645990973296728066683849166257949
747922905361845563741034791430771561168650484292490281102992529678735298767829269040788778480262479222750735
948405817439086251877946890045942060168605142772244486272469911146200149880662723538837809380628544384763053
235070132028029488392008132135446450056134987017834271106158177289819290656498688081045562233703067254251277
277330283498433595772575956224703707793387146593033088629699440318332665797514676502717346298883777397848218
700718026741265997158728035440478432478674907127921672898523588486943546692255101337606377915164597254257116
968477339951158998349081888281263984400505546210066988792614558214565319696909827253934515760408613476258778
165867294410775358824162315779082538054746933540582469717674324523451498483027170396543887737637358191736582
454273347490424262946011299881916563713847111849156915054768140411749801454265712394204425441028075806001388
198650613759288539038922644322947990286482840099598675963580999112695367601527173086852756572147583507122298
296529564917835071750835741362282545055620270969417476799259229774888627411314587676147531456895328093117052
696486410187407673296986649236437382565475022816471926815559883196629848307776666840622314315884384910519058
281816740764463033300119710293036455866594651869074475250837841987622990415911793682799760654186088721626654
886492344391030923256910633775969739051781122764668486791736049404393703339351900609387268397299246478483727
274770977466693599784857120156789000241947269220974984127323147401549980920381459821416481176357147801554231
599667838534854486406936410556913531335231184053581348940938191821898694825383960989942822027599339635206217
705343572073396250574216769465101608495601439303244304271576099527308684609204422226103154229984444802110098
161333824827375218998738205315164927134498105950159974800571591912202154487748750103473246190633941303030892
399411985006225902184164409988173214324422108554248620896250260604398180189026317781146617454999771440665232
863846363847001655618153861098188111181734191305505024860345856755585637511729774299329074944236579668332700
918367338977347901759248885660379952771540569083017311723894140326159612292912225191095948743805673381278538
616491842786938417556898047100859868372033615175158097022566275200160956192229925401759878522038545913771783
976389811198485803291048751666921195104514896677761598249468727420663437593207852618922687285527671324883267
794152912839165407968344190239094803676688707838011367042753971396201424784935196735301444404037823526674437
556740883025225745273806209980451233188102729012042997989005423126217968135237758041162511459175993279134176
507292826762236897291960528289675223521425234217247841869317397460411877634604625637135309801590617736758715
336803958559054827361876112151384673432884325090045645358186681905108731791346215730339540580987172013844377
099279532797675531099381365840403556795731894141976511436325526270639743146526348120032720096755667701926242
585057770617893798231096986788448546659527327061670308918277206432551919393673591346037757083193180845929565
158875244597601729455720505595085929175506510115665075521635142318153548176884196032085050871496270494017684
183980582594038182593986461260275954247433376226256287153916069025098985070798660621732200163593938611475394
561406635675718526617031471453516753007499213865207768523824884600623735896608054951652406480547295869918694
358811197833680141488078321213457152360124065922208508912956907835370576734671667863780908811283450395784812
212101117250718383359083886187574661201317298217131072944737656265172310694884425498369514147383892477742320
940207831200807235326288053906266018186050424938788677872495503255424284226596271050692646071767467502337805
671893450110737377034119346113374033865364675136733661394731550211457104671161445253324850197901083431641989
998414045044901130163759520675715567509485243580269104077637210998671624254795385312852889930956570729218673
523216666097874989635362610529821472569482799996220825775840988458484250391189447608729685184983976367918242
266571167166580157914500811657192200233759765317495922397884982814705506190689275625210462185661305800255607
974609726715033327032310025274640428755556546883765838802543227403507431684278620637697054791726484378174446
361520570933228587284315690756255569305558818822603590006739339952504379887470935079276181116276309771257983
975996526612120317495882059435754883862282508401408885720583992400971219212548074097752974278775912566026443
482713647231849125180866278708626116699989634812405803684794587364820124653663228889011636572270887757736152
003450102268890189101673572058661410011723664762657835396364297819011647056170279631922332294228739309233330
748258937626198997596530084135383241125899639629445129082802023225498936627506499530838925632246794695960669
046906686292645006219740121782899872979704859021775060092893328957272392019589994471945147360850770400725717
439318148461909406269545285030526341000565022226152309364882887122046454267700577148994335147162504252365173
710266068647253458120186683273953682547456536553597546685788700056988360286686450740256993087483441094086086
303707908295240576731684941855810482475304758923392801571302824106234999945932390521409856559565661346003396
150515164758852742214732517999548977992849522746029855666700811871200856155016457400484170210303038996339253
337466556817824410737409336919294104632307731994759826307383499600770372410446285414648704116273895649834555
162165685114551383822047005483996671706246467566101291382048909121117229386244253158913066987462045587244806
052829378148302622164542280421757760762365459828223070815503469404938317755053305094698999476119419231280721
807216964378433313606760676965187138394338772485493689061845700572043696666465080734495814495966306246698679
832872586300064215220210171813917325275173672262621454945468506006334692713838311715849753092643252486960220
059099802663765386225463265168414963306369548086551101256757717890616694758344043486218485369591602172030456
183497524162039926441331651884768606830642004858557924473340290142588876403712518642229016333691585063273727
199596362912783344786218887871009533753551054688980236378263714926913289564339440899470121452134572117715657
591451734895195016800621353927175419843876163543479806920886666227099512371706241924914282576453125769939735
341673046864585181979668232015693792684926999983992413571941496882273704022820805171808003400480615261792013
978945186295290558440703738300533552421153903385185829366779190610116306233673144419202893857201855569596330
833615450290424822309297087124788002017383072060482680156675397593789931793515799958929562156307338416294599
900276730832827716595064217966523190439250543226753731811755315476780739470338931185107297724318378972674957
455778183345495942317353558291046967315391275975687281861691161083156337232639968881490543943261197182274996
791176628553401860198315809629981791107208804992292016062059067271273599461871634945774995805337947187105456
452579396024210259136415528398395201773012712514892051061708228008339985665786646920737114269682301770416324
829479409558694699089379165191006305185352102345189798127619143061864362703081977124992751056732909481202057
747100687703379708934229207183903744167503493818836342229284946790660285674293251642569044363473087656797056
595677285291081242733154406580199802711579126254172797452862574865921933293805915239524735518887119860391319
654287576290190503964083560246277534314409155642181729459941596061979622633242715863425977947348682074802021
538734729707999753332987785531053820162169791880380753006334350766147737135939362651905222242528141084747045
295688647757913502160922040348449149950778743107189655725492651282693489515795075486172341394610365176616750
329948642244039659511882264981315925080185126386635308622223491094629059317829408195640484702456538305432056
506924422671863255307640761872086780391711356363501269525091291020496042823232628996502758951052844368177415
730941874894428065427561430975828127698124936993313028946670560414084308942231140912722238148470364341019630
413630736771060038159590829746410114421358321042574358350220737173219745089035573187350445827238770728271406
162997919629357224104477155051652535867544109395079218369015261138440382680054150924346511711436477899444553
993653667727589565713987505542990824585609510036934663100673714708029927656933435500927189854050109917474979
991554392031908961967615444686048175400695689471463928245383807010444181045506171305160584355817521032338465
829201071030061124283407458607006060194830551364867021020364708470807422704371893706965688795617928713045224
516842027402021966415605280335061293558739079393524404092584248380607177444609964035221891022961909032569042
381374492494906892314330884224399631396391545854065286326468807581148748371408284176455226386313520264894016
262494802388568231599102952620337126449279901938211134518446387544516391239377974190576649911764237637722282
802318465738050121277809680315691477264910257503508758792248110223544524410872448565700755187132146592093548
504552829170749596775404450779494836371756062326925757412813110241910373338080434325310884694831555729402265
394972913817581338619457057799561808755951413644907613109617155928376585840036489374076822257523935988731081
689667688287403837192827690431514106997678303819085690713091931340846019511147482766350724676534922040058626
677632935516631939622498979912708004465982264899125226813124300528104995058595676527123591494442612554437618
645029202881358582871789577224116380815161831603129728796987480139828621645629196153096358337313619724773332
353025466571196902611237380629030242904275794549030022660847446513161741691916851746464945459696005330885252
792083472495235473110674109099223541055506299687642153951249355986311346661725116890785633328935569150449485
189113488301876365100638502565916433021928565596263914382895068324838727165616560111531517055222955765944972
454788815532316417453267167978861141165355597588331979638070962998880767303616940317736448140427867784251232
449974693421348217179595190698204602997172001174857303889719205597414742453011135869766256607770970225633261
701108463784795555258504578058879440756064974127974530918418405207558526462208821483646754652237609210787539
190454684852349759986044943322828073120679922402477507514105890774627334319091255451352225329275913842047384
603056163154236552935312278389759446515787337343463172280001031380425481404022090580405056003860937403435068
863081434683848900708938565050027569059678069404698435184535134141031615133683043714786642925389717165978629
010728400758939700388317742648163725113277369926827709465342583596111881955092462062153978121197244762623771
534452048069819082524943963962251113831177428978535825590832490480497516047104257569753442551515779815600370
847230603484753977513688390404316017486248871339311818523029425425676202485688393970836748788453789172574145
155917919035398535077200900594979352939459631213445503368260690059828717723533375221941915547303742062343262
892968397015058892191112049249864792053410872349115430987182160055762209075732304626106597744947658346313025
598636315029959672352476943975462530206788193304372284800209305354155640664838569378144603138697563459200233
462606995955513484754147891180830329816421587452922952678937925647752029052675349356673744293182673374571642
465407748267901046778759085408130531447176455869894169668940436489952465247443988349583871206296485413357553
813419500498743813369062703973874586604296871595820715766599826607317005624465541763024501349159567288942619
746144496908671655859782729228702723774835097362901019130417812735773037781804081589136005207315806941034305
003184349342360269244733060013861119781774472669608928321052543116496033420102032603863672532889648333405862
204843616575362001468405476649666473566979572953394809138263703324220930839366954980688240491622063147911494
642042500022450413425558561937442905257252436320054487441524307305215070491020434076572476865095751174125413
729531644521765577235348601821566833352520532830000108344008762266843817023235605645158256954177359197813649
975559601912567744942717986360045847405209290089397315276024304951653864431388147876977541478757432610159879
709758855625806766197973098472460769484821127948427976536607055051639104415022554420329721292033009353356687
294595912327965886376486894188433640548494009574965791657687213927330153555097865114767947399690623184878377
515462613823651665956337209345708208301840482797005728071432925727577436229587047361641609731817241594204270
366066404089740245521530725227388637241859646455223673260411164598464020010216920823315155388821071527191267
876531795071908204525100447821291318544054814494151867114207103693891129125012750853466337717749376016543454
696390042711129829255096830420665725364279472200020835313883708781649957189717629338794854271276882652003766
325924561614868744897471519366219275665852462114457407010675380427564184440834805203838265052601698584060084
788422421887856927897751810442805474427229455167420335686460609977973124950433321425205053675790499520783597
650415379001132579536040655172654879022173595444151139429231648950663177813039057462082449171921311864129633
704661406456900178942356738775523130952785912774533241855442484484493664210731348819180640189222317302156645
813473186449997905781662091469870718039388885781280740226363602294114354869871402143572055947730892808653678
920201935102605361567924483276749476117858316071865710310842200560259545115191391309119544447844361032741876
102338843391687589233423790859841968266525610628751237572318491474951945985728897934981791761822652480408237
128109790772638864286067917082288575852703470839714561619926247844794692794996845945632382702297364173503430
783194115698247820013290851202878474805860188960045901745974055630732714487679085288867978809970695240681006
625611440014983413580889737246844064948857074167687916413224205373654067330186392497910915474785959163865597
507090581175924899502214799250945635582514315814464060134283490422798357939659258985200763845646681640732681
928346007767285876284900068874564639274964415904034033672337814491597032941787294155061054129515400159393851
663929325677429557549480046658273579653990940233543644649376827272541873627547532976808190325336141086433084
237771738995221536763095302045902438694632702895293994483013577589081214884558493819874505920914067209522469
096263076941753340983698859363700314973728977996360018626500174929290087931189997822963712306642297996163582
572600112288983647651418045975770042120833949364659647336464289044499325396227091907373705772051322815957863
227591912786054297862953188615559804728160710864132803585400160055575686855791785977899197902656592621283007
225351401525973569300729015392211116868504740402172174442051738000251361000494534119324331668344243125963098
812396962202358858395587831685194833126653577353244379935683215269177042249034574534858913812582681366908929
476809052635560638119661306063936938411817713545929884317232912236262458868394202889981693561169865429884776
513118227662526739978808816010470651542335015671353744817086234314662531190291040152262927104099285072418843
329007277794754111637552176563589316326636049381218401837512818884771168975479483767664084842753623074019542
183217985496260666590347925816342392670947839907062923166535037285019751324813803837070894638925470887039085
723581006130628646664710006104352115778926613432214655311411882596942926284522109026688414975763341554921135
581254616558078273470115814006008345762133130389987843270653719956709570847385786092649188858378739239165554
263577301292243641604062551736892335636568854365851646207821875741724364525814143487632761341752707376754922
276287782264765154315341585713773522730335403376364204258034257264749686217823666951353410677378421131371131
987373222891805275062812277716412494412401207125954319991746574745892582613712825555535080404143944557295994
554635608487251339462936358940832098964801619583130429720964794128539388996265368928263807677168759588502216
464582430940165009688797366157733560316836710386895228270941509545222744002735499253670214715994056544813842
186380128799900820933576320736369405991424263718294000613741900579513096298545330748197802568301089672873802
234820488862973130369689882640657904781562389778485365025691064231795736025330908763271784911189748432246868
086340383964176127605788646574472284824932687443062551220506955168464669477183681911432873544815836350548146
411099960143390595799766290646881295025039150923633011076070632863317393378149693380247580035052789782755750
928604039420506342939327064636161031822879248152679306862749237275631852225654266008556849497720285909150930
495425967473648331437236349555448901598668408362176913559656039519670425368863482369587129462524759031776813
184977588276576740482558136502103649585505703259219957675334264223783723586058509403583977103476670644788640
831109650302565215607464019652716999732373465237173456595514559493098166644006211599349133180135150528651842
178828026343325934755850761168697709125580056185683710540856081249519403148064618719402577663285267019698387
567561524696759028106864896869293315954352097687527137201616160931174250199709289684940034696242325688410665
113304377412256176258658941236728171145526423894512631717834790276921171452887352955019336759218908006048633
737786728180610254782570436788449503518925787499836694785908612975543084122677060954347612133717433156783790
162012337237023338316414706428592185977610158232721997915062871868186750981665537745013020880333904353639770
263363809098526494532628146558065546504823486429495390613257400496912888340518222933644476683855037967975809
619983575807027759535968788226194659612223044549275600274955168583542582295336042834426318478068825395450746
691877897765406038432512843812811316856204608617289408229658626174420766920297427930088129519854678713548623
236610413216581279267151545961594352593456757445992307889205519540082316409719591250025455237503106735639748
835542480449681383030671851931491335789202123605308199952020584503423499932150962634977812456658304680581824
563524814625849331926195406884818446445248429486063016169476663242625231476322371109695369483824482316410396
224507675405614287468267835723704895606990652792688455844512046654853378534026646645042339638488257719874953
611300494215593735545211926186721478265416885604094928290056616883807637656690510740892510549165222968878676
968631652514917701499900066637344546120262780701925698706225540928945194718778004306130021828287425867048748
480826948573444778244078734102710824870269523830804910960482013901294024631244800159336670212658317677879752
965963472576894326540435889267293950687860830626266263287392087327302547910099932113388977807814336728791448
768373686467748528777737403547472871644217767820712964506270880978637928144071192505141148004907055608097229
299792441471062852247029870699869227676341773513258602908903875707454368077876422385333700692089616351009233
587303986543906071880952557553380364725895007306772122528078179471056481171378557451057691044322925429024149
433588396093679321361696954251299731031032804436954501929843820842383121265825740594509426942777307124802176
915781835720087170538773256017987133005505911377823841791640280841409623820847637393013930778428554545222367
559824666250608754284876104145661362227642405914304455580856318180935230407793891614902116292400515074914068
443203230365609954878620999194306564455332547135557365318516011700321550690787716752062881527885897149410320
986984083048966524351030502444679931779147659103428949129054120361601695671222140806369405940304552186212879
933092856231022418446365289097444640151986623183881962444822590783585914043686193019041458962693878907034982
169868696934448086213990534591792826654304798207219634134755646525483143771156678459077797196510772468000293
581546267646310224279007313631352522067062951125935874473134186492497282784796644585448962932905262058065248
588707020879389134476083344653170939242408249328008915731319541348311820927752486880548733943315867562666122
179355051190609992911379445634995627391898459029021713155706096267881673302940198464237390445098028030948975
981259252055850973537436556825780313681902007151675693827281818824587541710721180806556448039122504537089422
695358382192535075692834095639859265599740391316709290043996275976830375217503360879028295673068862263077729
733533853682668734519035709709687322323738300494090123239274318759046526327095178406267264828893646896593219
169521106361729757074376148061601331104911692271318609404145014842866423634716982892418180484365230538864559
809839273836490685480823014267803143937440431807822678779494006206489151248952516543005634448375046751754207
043313372486870633237561645232360481932024377596890914783372179553676992603235715185513391098402739063753280
702313301755754269396202629423910945323537910125948964941812563672992967084250667599803456273455598559628512
281414582556024841783305645240508450065988755987518601335860624932784487772006842296591945516539562982960591
610046578907214842054861830418175604559815168088031783080261445994444677918012432146400983610678683412974872
596729258786806223080115822026289014364459002301645823666709265571264559925790622304745235625575111770791512
002789380975775468546121017307522799241407026308137792971909461413145802081087738121624539858769697371425881
836152605069380926917712087321915005831977113322793572385071940612761291872572099404930250277748156614021327
434743881966413330052634229082906400927944924808556131183440161804801357032507836323938921567643159620442612
809700944107776130638909071294456394056601559246025454204771186140420155233371270501377121034570009578009389
265329385720478576508777149663403003562380595757191609382171312222810465858388943507176431939973012661591423
837170284400120399485880996231859472474858776584355077006934099220340378772192728370301380838144394114984971
730766162961342059105014814283949700695951676939041557902856356911055547312684571497449635320554677940775184
056667637222969090346128706829887104278761090090999160443821794511763620835379716161833124364431267855435550
800507986124664397724135502128238026726719914989727248512981287283697489276420792868666970177259794407858155
909332508554131299946581118527691652464790819119384233275897699573012098103009171001695718791616942270079528
915191912521053891838538959315167400505723817401030621004380243011187977704252328073236575129609372456053680
037516596164236147709330391224409752871732067976128120428026739256557305675931512645750047875756531854825821
411574030473147492511910835615765732002546109686701890307648531373832912682481741181359032826625082549313211
431478953352317043989053928534946642886074268371824902498092479487226633686823799580875637040808655649321905
489637785549531167397935270799470452399153297534358690514105864096534514182896474439367182852711843560799285
895978176543950113088848419163516673213692860830956744502801800373716458009168082972708715609185038654053436
660045504985624687376022557041595800250174095361839287643458003670864954057941720085136357127163768323493134
230703821274484501440529541695374381945459456533165140990993722722801019654652726227831512103467686166826131
471843610025517863247950150022953695466317739589344131481485834694374523981159954666071205997794363440185078
360899108948073419633939259318973940943110042116729120199722626609871927014024105805515315100109804996044147
291039451030312664114726736839973315035036742741546992633165270432940675237449075056739508929674779115800864
399992564817208847429250821546279856079127768611946086210349405535850134472190244543824521089284409498132717
010673966471114931896789977661595488186193176900175027901783824624387873831483279500879026433992577026588005
849778984624295660321276945810824348129690840972550671054732471317254997191901039553305847040728081693158626
093886019147689944137673621432083607375131574376316754666479186753896571555100850626810005119827486807780592
667765654100834778571024250133253391587384761024129794736751001163498977803745930025457609870671092153597115
178252014281216647543034075128600240297038428615984289816602143429849088917359682192284469123035904329877231
843309914187264674607558318725713138832356015809009594182530207799397648462597901883341793830920965841463574
411985878296475850943053008148341821747826603773762252997703468752903517310792083220038080809212164346586817
989810504274375385786789186350517717501606531826406928883250135919517178537687865881752366421534010961295763
074762648070312757365787762352859057153932484576503944390496668087711899192498933896524852395536795827530614
167131757915756386606004839994179548705868209201195154952031294562451315422506574858629161606523796643010172
693950282294667489681746821163996794950294284013099235901278250437428192557634533217576162292751110598368271
567229778620053722932314082887058749444060116236521627717558503013451471452765841864277071769968435499620257
547431811994883385806759692359580622165832464092095350648357935817742903018315351290014321495518177456908388
719320697769695657771754499149911431368950836160692539606469893374870942933219185601299108564470256257163505
508620689240297589684714283678684735455533583477652536156578189996983068654671736445996343136468195427420490
472433064675001442697508322369013083895492637066778406531328664886080129513771720847581157719491012345141774
941482773580041432667332379617716965698582785832300505265883502247868050648201444570593197343382923860072601
696510903258980909912837652275381493529845099414966933862815568031306981064525192703818515872648691762563239
441425216118427769145067718411735714396681005615483952443154944864238384298900399826113322468963346522104692
545137969276009719645338955332105584245640187448611050959111766828942711640054010503770420346052521318228045
892998637903572350665108782350043349942391285236308896510989246641056331584171142885304143772286629832318970
869030400301325951476774237516158840915838059151673504519131178193943428482922272304061422582078027829148070
426761629302539228321084917759984200595105312164731818409493139800444072847325902609169730998153853939031280
878823902948001579008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000
End of program.
Exc Time = 14.500000
Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
User avatar
MarauderIIC
Respected Programmer
Respected Programmer
Posts: 3406
Joined: Sat Jul 10, 2004 3:05 pm
Location: Maryland, USA

Re: Challenge TIME!

Post by MarauderIIC »

I'll make an entry when I get home =p
I realized the moment I fell into the fissure that the book would not be destroyed as I had planned.
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: Challenge TIME!

Post by Falco Girgis »

That is bad ASS. I'm interested, but I'm at work. I'm thinking about how I would go about working on this for when I get home sometime.
User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Re: Challenge TIME!

Post by avansc »

GyroVorbis wrote:That is bad ASS. I'm interested, but I'm at work. I'm thinking about how I would go about working on this for when I get home sometime.
sweet looking forward to it.

i'll conjure up some other challenges that might be more appealing.
Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Re: Challenge TIME!

Post by avansc »

for anyone that is interested,
java has BigInteger class. but id suggest if you were going for something a bit faster, make your own data structure, and start by making it 128 bits long, and experiment, you will have to have to allocate quite alot of memory if you wanna use number with 1000000+ digit length.

if you knwo what they biggest number you wanna get is you can easily see how many bits you need to represent that number.
for example if you want a number that has 300 digits, you would have to have 1024 bits. because 2^1024 = 1.797693134862315907729305190789e+308
that would be the largest number you can represent with 1024 bits. also note thqat this is unsigned numbers.

also remember that if you bit shift to the left that is the same as *2 and so on, you can also break multiplication up this way. like multiply by 4 is 2 shifts and by 8 is three and so on.

numbers that arent powers of 2 can be broken up, like lets say 36, can be 32 and 4.
here is a freebie in ASM, this will help alot if you begin delving into the abyss of performance analysis.

Code: Select all


.data
intval dw 0Ah      ; result = 0168h (360d)
product dw ?

.code
mov cl,5              ; multiply by 32
shl bx,cl              ; BX = 0140h (320d)
mov product,bx   ; save first result
mov bx,interval   ; get integer value again
shl bx,1              ; multiply by 4
shl bx,1              ; BX = 0028 (40d)
add product,bx    ; add results together               

Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
Chaos Clown
ES Beta Backer
ES Beta Backer
Posts: 61
Joined: Sun Sep 21, 2008 4:46 am
Location: U.K.

Re: Challenge TIME!

Post by Chaos Clown »

I managed to get up to 20!, but then "unsigned long long" runs out of space.

Are there any C++ data types with super huge limits? Is there any way to beat the limit? Any help would be much appreciated (I don't mind being disqualified for getting help, :lol: )
¡Sí! ¡He dejado en libertad los prisioneros y ahora vengo por ti!
~El Pollo Diablo
User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Re: Challenge TIME!

Post by avansc »

this is my max for now. my constraint is computation time.
this took almost 320 seconds to compute

Time : 0
Start of program.
Favtorial(100000000) = 1.617202229E+756570556 that over 756 million digits long!
End of program.
Exc Time = 318.516000
Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Re: Challenge TIME!

Post by avansc »

Chaos Clown wrote:I managed to get up to 20!, but then "unsigned long long" runs out of space.

Are there any C++ data types with super huge limits? Is there any way to beat the limit? Any help would be much appreciated (I don't mind being disqualified for getting help, :lol: )
i would never disqualify any one for asking for help, that is a great quality in a programmer. im sure there are libraries in C/C++ for large number but i would make my own if i were you.

think of what a unsinged long long is, or make is simpler, a byte. so you have 8 bits, you can represent 2^3 = 256 numbers. if you add 2 bytes you get 16 bits. 2^16 = 65536 so you need a way to chain bits together to make a longer datatype.
search through the .h files for ints and doubles, and longs and see what you can learn from them.

alternativly you can use a different language that handles that for you. i think lua does, but im not sure. i know perl does.
Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Re: Challenge TIME!

Post by avansc »

NB: my score does not count, so who ever other than me get the highest wins. i have done this before. im mearly adding what i get to encourage you , so you can see what kinda numbers you can reach.
Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Re: Challenge TIME!

Post by avansc »

Chaos Clown wrote:I managed to get up to 20!, but then "unsigned long long" runs out of space.

Are there any C++ data types with super huge limits? Is there any way to beat the limit? Any help would be much appreciated (I don't mind being disqualified for getting help, :lol: )
if you send me your code i can tell you where to start optimizing.
Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
Post Reply