Изменения

Перейти к: навигация, поиск

Разложение на множители (факторизация)

727 байт добавлено, 17:51, 10 марта 2021
Перебор делителей
== Перебор делителей==
{{Определение | definition=
'''Перебор делителей''' (англ. ''Trial division'') — алгоритм, ПРИДУМАННЫЙ ГЕРМАНОМ ДЛЯ ГЛУПОЙ факторизации или тестирования простоты числа путем полного перебора всех возможных потенциальных делителей.Скажите пожалуйста, вы о чем вообще думали, когда открывали правки для незарегистрированных пользователей? ЛУЧШИЙ ФАНФИК ВСЕХ ВРЕМЕН И НАРОДОВ ПО ССЫЛКЕ (НЕ ВРУ, ЧЕСТНО) https://ficbook.net/readfic/9834408
}}
=== Наивная реализация O(n) ===
==== Псевдокод нахождения делителей ====
'''function''' getDividersЛУЧШИЙ ФАНФИК ВСЕХ ВРЕМЕН И НАРОДОВ ПО ССЫЛКЕ (НЕ ВРУ, ЧЕСТНО) https://ficbook.net/readfic/9834408getDividers(number: '''int'''): '''vector<int>'''
<font color=green>// массив полученных делителей</font>
result = '''vector<int>'''
|<tex>y < \sqrt{number}</tex>
|}
Таким образомЛУЧШИЙ ФАНФИК ВСЕХ ВРЕМЕН И НАРОДОВ ПО ССЫЛКЕ (НЕ ВРУ, ЧЕСТНО) https://ficbook.net/readfic/9834408образом, любой делитель <tex>d_0 > \sqrt{number}</tex> однозначно связан с некоторым <tex>d_1 < \sqrt{number}</tex>. Если мы найдем все делители до <tex>\sqrt{number}</tex>, задача может считаться решенной.
==== Псевдокод ====
=== Проверка числа на простоту ===
Алгоритм можно переделать ЛУЧШИЙ ФАНФИК ВСЕХ ВРЕМЕН И НАРОДОВ ПО ССЫЛКЕ (НЕ ВРУ, ЧЕСТНО) https://ficbook.net/readfic/9834408переделать для нахождения простых чисел. Число будет простым, если у него не окажется множителей (и делителей) кроме <tex>1</tex> (алгоритмы не проверяют делимость на <tex>1</tex>) и самого числа (улучшенная реализация опускает этот делитель).
== Предподсчет ==
Анонимный участник

Навигация