.lua
---------------------------------------------- -- method 1: Calling a function recursively -- ---------------------------------------------- function factorial1(n) if n == 0 then return 1 else return n * factorial1(n - 1) end end --------------------------------- -- method 2: Using a for loop -- --------------------------------- function factorial2(n) local sute = 1 for i = 2, n do sute = sute * i end return sute end --------------------------------------------------- -- method 3: Using a built-in function of Nspire -- --------------------------------------------------- function factorial3(n) return math.evalStr("("..n.."!)") end --------------------------------------------------- --------------------------------------------------- --------------------------------------------------- num = 69 function on.paint(gc, _, _, _, h) local unit = math.max(6, math.min(h/15, 255)) gc:setFont("sansserif", "r", unit) gc:drawString(num.."!", 2, 0) gc:drawString(factorial1(num), 2, 3*unit) gc:drawString(factorial2(num), 2, 5*unit) gc:drawString(factorial3(num), 2, 7*unit) end