offtopic:
Je hebt gelijk. Althans, m'n class is niet stuk, maar m'n operator<<() verantwoordelijk voor de uitvoer wel (die een benadering van 1/10 gebruikt, maar die benadering niet uitrekende in de resolutie van het uit te voeren getal, maar in slechts 256 bits, terwijl het resultaat van 1000! in 7552 bits werd opgeslagen

). De echte waarde moet zijn:
40238726007709377354370243392300398571937486421071463254379991042993851239862902059204420848696
94048004799886101971960586316668729948085589013238296699445909974245040870737599188236277271887
32519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783
64784997701247663288983595573543251318532395846307555740911426241747434934755342864657661166779
73966688202912073791438537195882498081268678383745597317461360853795345242215865932019280908782
97308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426
23613141250878020800026168315102734182797770478463586817016436502415369139828126481021309276124
48963599287051149649754199093422215668325720808213331861168115536158365469840467089756029009505
37616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399
73628075013783761530712776192684903435262520001588853514733161170210396817592151090778801939317
81141945452572238655414610628921879602238389714760885062768629671466746975629112340824392081601
53780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745
99264295658174662830295557029902432415318161721046583203678690611726015878352075151628422554026
51704833042261439742869330616908979684825901254583271682264580665267699586526822728070757813918
58178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180
61213855860030143569452722420634463179746059468257310379008402443243846565724501440282188525247
09351906209290231364932734975655139587205596542287497740114133469627154228458623773875382304838
65688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193
89701786004081188972991831102117122984590164192106888438712185564612496079872290851929681937238
86426148396573822911231250241866493531439701374285319266498753372189406942814341185201580141233
44828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389
86355427719674282224875758676575234422020757363056949882508796892816275384886339690995982628095
61214509948717012445164612603790293091208890869420285106401821543994571568059418727489980942547
42173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004
15369010593398383577793941097002775347200000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000