Вы можете предварительно рассчитать факториалы для любого диапазона, который вам необходим, используя любую технику, которая вам наиболее удобна, и сохранить их в отдельной таблице.
Остальное, я полагаю, должно быть тривиальным.
РЕДАКТИРОВАТЬ: Если подумать, я не уверен, как вы планируете на go выше пределов, с которыми вы уже столкнулись. 170! ~= 7.25741562E+307
, и максимальное значение, которое может быть сохранено как число с плавающей запятой, составляет 1,79E + 308, согласно документации . Кажется, SQL Сервер не совсем подходит для вашей задачи; вам придется искать в других местах системы, которые обрабатывают (и хранят) очень большие числа.
Возможно, можно прибегнуть к вычислениям в логарифмах, а не к действительным значениям - это особенно заманчиво, учитывая, что исходная форма Формула Стерлинга на самом деле логарифмическая c. Однако для этого потребуется переписать все эти формулы в их логарифмические c формы. Это включает в себя немало математики, и мои личные знания недостаточны даже для того, чтобы сказать, достижимо ли это на самом деле. Но это не значит, что это должно остановить вас от попыток:)