Если использовать логарифмы, то для лучшей точности стоит идти в сторону увеличения чисел, а не уменьшения как сейчас в коде.
Точность в любом случае не превысит где-то девяти-десяти знаков, в отличии от BigInt, который вообще говоря точный, зато медленнее логарифмов (для
достаточно длинных чисел).
PS. Ну а без мозга изучать программирование, и тем более заниматься им, полностью бессмысленно.
-- 03.07.2018, 01:48 --Тогда уж можно сразу формулу Стирлинга использовать,
Это да, но это ещё дальше оптимизация алгоритма, я высказал лишь первый банальный шаг.