Echo-Off писал(а):
Spook писал(а):
под корнем должно быть
Вы уверены? У меня в показателе степени стоит "
"
Алексей К. писал(а):
PAV писал(а):
Послушайте, а не проще ли поступать так: берем требуемое число и последовательно делим на 2, 3, 4 и так далее.
В отъезде с... по ....
Похоже, не хотят ребята попроще... Хорошего отъезда!
Я, в общем, присоединяюсь, за исключением "нехотят"
Думаю, в принципе, нужно
сделать как сказали
PAV и
Cave, вот только можно оптимизировать, напрмер, посчитать кол-во цифр и начать делить(умножать) не с 2, а с большего числа.
Бодигрим, да, пожалуй Стирлинг тут не лучший способ. Вариант с количеством нулей я все-таки на досуге попробую проверить. За неравенства спасибо, думаю, смогу получить точное выражение.
Батороев писал(а):
Неужели, Вы оперируете более высокими величинами?
Ну это просто задачка по программированию, в принципе, вряд ли числа будут больше.
Батороев писал(а):
p.s. Кстати, в соседней теме Вы спрашивали, как можно проверить число на простоту?
Так вот, при помощи указанного выше факториала можно проверить все числа от
до
.
Если данный факториал имеет остаток по модулю заданного числа, отличный от нуля, то это число - простое.
Если Вы отдельно введете проверку, делится ли число на
, то диапазон можно увеличить до
и т.д.
Интересная идея, оценить бы временную сложность и объем памяти.
PAV писал(а):
Это количество лежит в диапазоне от
до
, что достаточно неплохо локализует
. Более того, для разумных величин
это количество считается достаточно быстро и легко, что позволит либо сразу забраковать проверяемый факториал, либо сузить диапазон
до двух кандидатов.
В принципе получается, что мы вибираем меньшего кандидата и все-таки считаем полностью его факториал?
ewert писал(а):
Более того, тупой перебор натурального ряда статистически в любом случае эффективнее, т.к. в большинстве случаев проверка будет очень быстро обрываться.
Вы имеете ввиду просто последовательное деление?