stirling = ((x / e) ^ x) * sqrt(2 * pi * x)
ramanujan = sqrt(pi) * ((x / e) ^ x) * ((8 * (x ^ 3) + 4 * (x ^ 2) + x + (1 / 30)) ^ (1 / 6))
truevalues = [[i, ln(factorial(i))] for i in range(10, 111)]
p = list_plot(truevalues, color = 'red', frame = True, legend_label = "True values", axes_labels = ['n', 'ln(n!)'])
p += plot(ln(stirling), x, 10, 110, color = 'green', legend_label = "Stirling's approximation")
p += plot(ln(ramanujan), x, 10, 110, color = 'blue', legend_label = "Ramanujan's approximation")
p.show()