Пишешь функцию Факториал и все. Ни каких проблемм. Потом, только вызываешь в теле программы.
Изначально я понял проблему так, что программа медленно вычисляет значение факториала.
Поэтому предложил вариант не вычислять каждый раз факториал заново, а просто брать значение из ячейки массива.
Если проблем с быстродейтвием нет, то вопрос снят.