var start = +new Date();
var f = [];
function fact(n){
	n = new BigNumber(n);
	if(n==0||n==1) return 1;
	else if(f[n]>0) return f[n];
	else return f[n]=(new BigNumber(fact(n.subtract(1))).multiply(n)).toString();
}
num = eval(fact(100).split('').join('+'));
document.write("Euler #20 Javascript: "+num+" Total Time: "+((+new Date() - start)/1000)+"sec
");
Euler Problem #20: 648 total time: 0sec
	echo array_sum(str_split(gmp_strval(gmp_fact(100))));