Здравствуйте, AlexRK, Вы писали:
ARK>Ну, тогда уж
ARK>ARK> unsigned long result = 1;
ARK> for (; value; result *= value--);
ARK>
Столько разговоров про факториал, и ни слова про переполнение...
P.S. Поскольку в 64 бита влезет только 20!, я бы имел таблицу из двадцати елементов + проверка параметра.
Бонус вопрос: а что ваша функция вернет в случае ошибки?