>>70
Even with breaking the function encapsulation:
bench(loop,ffact3,10000000,110)=1131ms which for 100M is 11310ms vs 2136ms (5 times faster)
http://dis.4chan.org/read/prog/1231236743/1-
code:
var factr={
0: 0, 1: 1, 2: 2, 3: 6, 4: 24, 5: 120, 6: 720, 7: 5040, 8: 40320, 9: 362880, 10: 3628800, 11: 39916800, 12: 479001600, 13: 6227020800, 14: 87178291200, 15: 1307674368000, 16: 20922789888000, 17: 355687428096000, 18: 6402373705728000, 19: 121645100408832000, 20: 2432902008176640000, 21: 51090942171709440000, 22: 1.1240007277776077e+21, 23: 2.585201673888498e+22, 24: 6.204484017332394e+23, 25: 1.5511210043330984e+25, 26: 4.032914611266057e+26, 27: 1.0888869450418352e+28, 28: 3.048883446117138e+29, 29: 8.841761993739701e+30, 30: 2.652528598121911e+32, 31: 8.222838654177924e+33, 32: 2.6313083693369355e+35, 33: 8.68331761881189e+36, 34: 2.952327990396041e+38, 35: 1.0333147966386144e+40, 36: 3.719933267899013e+41, 37: 1.3763753091226346e+43, 38: 5.23022617466601e+44, 39: 2.0397882081197447e+46, 40: 8.15915283247898e+47, 41: 3.34525266131638e+49, 42: 1.4050061177528801e+51, 43: 6.041526306337384e+52, 44: 2.6582715747884495e+54, 45: 1.196222208654802e+56, 46: 5.502622159812089e+57, 47: 2.5862324151116827e+59, 48: 1.2413915592536068e+61, 49: 6.082818640342679e+62, 50: 3.0414093201713376e+64, 51: 1.5511187532873816e+66, 52: 8.06581751709439e+67, 53: 4.274883284060024e+69, 54: 2.308436973392413e+71, 55: 1.2696403353658264e+73, 56: 7.109985878048632e+74, 57: 4.052691950487723e+76, 58: 2.350561331282879e+78, 59: 1.386831185456898e+80, 60: 8.32098711274139e+81, 61: 5.075802138772246e+83, 62: 3.146997326038794e+85, 63: 1.9826083154044396e+87, 64: 1.2688693218588414e+89, 65: 8.247650592082472e+90, 66: 5.443449390774432e+92, 67: 3.6471110918188705e+94, 68: 2.48003554243683e+96, 69: 1.7112245242814127e+98, 70: 1.1978571669969892e+100, 71: 8.504785885678624e+101, 72: 6.123445837688612e+103, 73: 4.470115461512686e+105, 74: 3.307885441519387e+107, 75: 2.4809140811395404e+109, 76: 1.8854947016660506e+111, 77: 1.451830920282859e+113, 78: 1.1324281178206295e+115, 79: 8.94618213078298e+116, 80: 7.15694570462638e+118, 81: 5.797126020747369e+120, 82: 4.7536433370128435e+122, 83: 3.94552396972066e+124, 84: 3.314240134565354e+126, 85: 2.8171041143805494e+128, 86: 2.4227095383672744e+130, 87: 2.107757298379527e+132, 88: 1.854826422573984e+134, 89: 1.6507955160908465e+136, 90: 1.4857159644817605e+138, 91: 1.3520015276784033e+140, 92: 1.2438414054641305e+142, 93: 1.156772507081641e+144, 94: 1.0873661566567426e+146, 95: 1.0329978488239061e+148, 96: 9.916779348709491e+149, 97: 9.619275968248216e+151, 98: 9.426890448883248e+153, 99: 9.332621544394415e+155, 100: 9.332621544394418e+157, 101: 9.42594775983836e+159, 102: 9.614466715035125e+161, 103: 9.902900716486178e+163, 104: 1.0299016745145631e+166, 105: 1.0813967582402912e+168, 106: 1.1462805637347086e+170, 107: 1.2265202031961373e+172, 108: 1.324641819451829e+174, 109: 1.4438595832024942e+176, 110: 1.5882455415227423e+178, 111: 1.7629525510902457e+180, 112: 1.974506857221075e+182, 113: 2.2311927486598138e+184, 114: 2.543559733472186e+186, 115: 2.925093693493014e+188, 116: 3.393108684451899e+190, 117: 3.96993716080872e+192, 118: 4.6845258497542896e+194, 119: 5.574585761207606e+196, 120: 6.689502913449135e+198, 121: 8.094298525273444e+200, 122: 9.875044200833601e+202, 123: 1.2146304367025332e+205, 124: 1.506141741511141e+207, 125: 1.882677176888926e+209, 126: 2.3721732428800483e+211, 127: 3.0126600184576624e+213, 128: 3.856204823625808e+215, 129: 4.974504222477287e+217, 130: 6.466855489220473e+219, 131: 8.471580690878813e+221, 132: 1.1182486511960037e+224, 133: 1.4872707060906847e+226, 134: 1.99294274616152e+228, 135: 2.690472707318049e+230, 136: 3.6590428819525483e+232, 137: 5.0128887482749884e+234, 138: 6.917786472619482e+236, 139: 9.615723196941089e+238, 140: 1.3462012475717523e+241, 141: 1.8981437590761713e+243, 142: 2.6953641378881633e+245, 143: 3.8543707171800694e+247, 144: 5.550293832739308e+249, 145: 8.047926057471989e+251, 146: 1.1749972043909107e+254, 147: 1.72724589045464e+256, 148: 2.5563239178728637e+258, 149: 3.8089226376305687e+260, 150: 5.7133839564458575e+262, 151: 8.627209774233244e+264, 152: 1.3113358856834527e+267, 153: 2.0063439050956838e+269, 154: 3.0897696138473515e+271, 155: 4.789142901463393e+273,156: 7.471062926282892e+275, 157: 1.1729568794264134e+278, 158: 1.8532718694937346e+280, 159: 2.946702272495036e+282, 160: 4.714723635992061e+284, 161: 7.590705053947223e+286, 162: 1.2296942187394494e+289, 163: 2.0044015765453032e+291, 164: 3.287218585534299e+293, 165: 5.423910666131583e+295, 166: 9.003691705778434e+297, 167: 1.5036165148649983e+300, 168: 2.5260757449731988e+302, 169: 4.2690680090047056e+304};
function ffact3(num){
return (num<170 && num>-1)?factr[num]: -1
}