shithub: mc

ref: ac306beff772b0a894ca95e0e0d0fe3029c7f8e4
dir: /bench/bigfactorial.myr/

View raw version
use std

const N = 600
const main = {
	var i
	for i = 0; i < N; i++
		std.bigfree(bigfact(i))
	;;
}

const bigfact = {n
	var i
	var x, y

	if n == 0
		x = std.mkbigint(1)
	else
		x = std.mkbigint(n)
		for i = n-1; i > 0; i--
			y = std.mkbigint(i)
			std.bigmul(x, y)
			std.bigfree(y)
		;;
	;;
	-> x
}