Який найкращий підхід до обчислення найбільшого простого множника числа?
Я думаю, що найбільш ефективним буде таке:
- Знайдіть найнижнє просте число, яке чітко ділиться
- Перевірте, чи є результат ділення простим
- Якщо ні, знайдіть наступний найнижчий
- Перейти до 2.
Я ґрунтую це припущення на тому, що простіше обчислити малі основні фактори. Це правильно? Які ще підходи слід переглянути?
Редагувати: Зараз я зрозумів, що мій підхід є марним, якщо в грі більше двох основних факторів, оскільки крок 2 не вдається, коли результат є продуктом двох інших прайменів, тому потрібен рекурсивний алгоритм.
Змінити ще раз: І тепер я зрозумів, що це все-таки працює, тому що останній знайдений простий номер повинен бути найвищим, тому будь-яке подальше тестування непросте результату з кроку 2 призведе до меншого простору.
1.
знайти будь-яке число , яке ділить ясно (для я = 2 Int (SQR (NUM))) 2.
розділити на це число (число = Num / я) і RECUR поки нічого не знайдено в 1. «s інтервал 3.
NUM представляє собою найбільший фактор