Результаты поиска
Алгоритм нахождения наибольшего простого множителя числа
Каков наилучший подход к вычислению наибольшего простого множителя числа?
Я думаю, что наиболее эффективным будет следующее:
- Найти наименьшее простое число, которое делится чисто
- Проверьте, является ли результат деления простым
- Если нет, найдите следующий самый низкий
- Перейти к 2.
Я основываю это предположение на том, что легче вычислить малые простые множители. Разве это правильно? Какие еще подходы я должен рассмотреть?
Edit: теперь я понял, что мой подход бесполезен, если в игре есть более 2 простых множителей, поскольку Шаг 2 терпит неудачу, когда результат является произведением двух других простых чисел, поэтому необходим рекурсивный алгоритм.
Правка снова: и теперь я понял, что это все еще работает, потому что последнее найденное простое число должно быть самым высоким, поэтому любая дальнейшая проверка не-простого результата из шага 2 приведет к меньшему простому числу.