Википедия

Перебор делителей

Перебор делителей (пробное деление) — алгоритм факторизации или тестирования простоты числа путём полного перебора всех возможных потенциальных делителей.

Описание алгоритма

image
Алгоритм «Перебор делителей»

Обычно перебор делителей заключается в переборе всех целых (как вариант: простых) чисел от 2 до квадратного корня из факторизуемого числа n и в вычислении остатка от деления n на каждое из этих чисел. Если остаток от деления на некоторое число i равен 0, то i является делителем n. В этом случае либо n объявляется составным, и алгоритм заканчивает работу (если тестируется простота n), либо n сокращается на i и процедура повторяется (если осуществляется факторизация n). По достижении квадратного корня из n и невозможности сократить n ни на одно из меньших чисел n объявляется простым.

Для ускорения перебора часто не проверяются чётные делители, кроме числа 2, а также делители, кратные трём, кроме числа 3. При этом тест ускоряется в три раза, так как из каждых шести последовательных потенциальных делителей необходимо проверить только два, а именно вида 6·k±1, где k — натуральное число.

Данный алгоритм является ресурсоемким при проверке больших чисел на простоту, но для его ускорения можно прибегнуть к следующим методам оптимизации. Для объяснения возьмем три последовательных числа (n-1, n, n+1). Предположим, что число n — простое. Так как n — простое, то слева и справа от него будут стоять числа, кратные двум, а исходя из того, что мы рассматриваем тройку подряд идущих чисел, среди них обязательно найдётся число, кратное трем. Тогда число n-1 и n+1 кратны двум, и одно из них кратно трем; следовательно, одно из этих чисел будет кратно шести. Теперь мы можем сказать, что простое число, большее трех, всегда будет стоять рядом с числом, кратным шести. Оптимизируя наш алгоритм, мы можем изначально проверить окрестность большого числа N, а именно N-1 и N+1, на кратность 6, и после этого запустить алгоритм проверки на простоту. Данный метод можно использовать и на задачах, связанных с отрезком чисел, и перебирать только те, которые стоят рядом с числом, кратным шести.

Скорость

Худший случай, если перебор придется проводить от 2 до корня из n. Сложность данного алгоритма

image

Пример

Для иллюстрации проведем перебор делителей числа n = 29. i — возможные делители n.

image

i n % i
2 1
3 2
4 1
5 4

Так как ни один из остатков деления 29 не равен 0, то 29 объявляется простым.

Пусть теперь n = 7399, тогда

image

i n % i
2 1
3 1
4 3
5 4
6 1
7 0

Так как остаток деления 7399 на 7 равен 0, то 7399 не является простым.

Практическое применение

В практических задачах данный алгоритм применяется редко ввиду его большой вычислительной сложности, однако его применение оправдано в случае, если проверяемые числа относительно невелики, так как данный алгоритм довольно легко реализуем.

См. также

Примечания

  1. Childs, 2009, pp. 117-118.
  2. Crandall, Pomerance, 2005, pp. 117-119.

Литература

  • Lindsay N. Childs. A Concrete Introduction to Higher Algebra. — 3rd ed. — New York, 2009. — 603 p.
  • Richard Crandall, Carl Pomerance. Prime numbers. A computational perspective. — 2nd ed. — New York, 2005. — 597 p.

Ссылки

  • Javascript Prime Factor Calculator using trial division Архивная копия от 10 января 2015 на Wayback Machine. Способен обрабатывать числа до 9×1015
  • Факторизация. wikia. Дата обращения: 29 марта 2022. Архивировано 28 декабря 2018 года.

Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Перебор делителей, Что такое Перебор делителей? Что означает Перебор делителей?

U etogo termina sushestvuyut i drugie znacheniya sm Perebor Perebor delitelej probnoe delenie algoritm faktorizacii ili testirovaniya prostoty chisla putyom polnogo perebora vseh vozmozhnyh potencialnyh delitelej Opisanie algoritmaAlgoritm Perebor delitelej Obychno perebor delitelej zaklyuchaetsya v perebore vseh celyh kak variant prostyh chisel ot 2 do kvadratnogo kornya iz faktorizuemogo chisla n i v vychislenii ostatka ot deleniya n na kazhdoe iz etih chisel Esli ostatok ot deleniya na nekotoroe chislo i raven 0 to i yavlyaetsya delitelem n V etom sluchae libo n obyavlyaetsya sostavnym i algoritm zakanchivaet rabotu esli testiruetsya prostota n libo n sokrashaetsya na i i procedura povtoryaetsya esli osushestvlyaetsya faktorizaciya n Po dostizhenii kvadratnogo kornya iz n i nevozmozhnosti sokratit n ni na odno iz menshih chisel n obyavlyaetsya prostym Dlya uskoreniya perebora chasto ne proveryayutsya chyotnye deliteli krome chisla 2 a takzhe deliteli kratnye tryom krome chisla 3 Pri etom test uskoryaetsya v tri raza tak kak iz kazhdyh shesti posledovatelnyh potencialnyh delitelej neobhodimo proverit tolko dva a imenno vida 6 k 1 gde k naturalnoe chislo Dannyj algoritm yavlyaetsya resursoemkim pri proverke bolshih chisel na prostotu no dlya ego uskoreniya mozhno pribegnut k sleduyushim metodam optimizacii Dlya obyasneniya vozmem tri posledovatelnyh chisla n 1 n n 1 Predpolozhim chto chislo n prostoe Tak kak n prostoe to sleva i sprava ot nego budut stoyat chisla kratnye dvum a ishodya iz togo chto my rassmatrivaem trojku podryad idushih chisel sredi nih obyazatelno najdyotsya chislo kratnoe trem Togda chislo n 1 i n 1 kratny dvum i odno iz nih kratno trem sledovatelno odno iz etih chisel budet kratno shesti Teper my mozhem skazat chto prostoe chislo bolshee treh vsegda budet stoyat ryadom s chislom kratnym shesti Optimiziruya nash algoritm my mozhem iznachalno proverit okrestnost bolshogo chisla N a imenno N 1 i N 1 na kratnost 6 i posle etogo zapustit algoritm proverki na prostotu Dannyj metod mozhno ispolzovat i na zadachah svyazannyh s otrezkom chisel i perebirat tolko te kotorye stoyat ryadom s chislom kratnym shesti SkorostHudshij sluchaj esli perebor pridetsya provodit ot 2 do kornya iz n Slozhnost dannogo algoritma O n1 2 n2 displaystyle O n 1 2 sqrt 2 n PrimerDlya illyustracii provedem perebor delitelej chisla n 29 i vozmozhnye deliteli n n1 2 5 displaystyle n 1 2 5 i n i2 13 24 15 4 Tak kak ni odin iz ostatkov deleniya 29 ne raven 0 to 29 obyavlyaetsya prostym Pust teper n 7399 togda n1 2 86 displaystyle n 1 2 86 i n i2 13 14 35 46 17 0 Tak kak ostatok deleniya 7399 na 7 raven 0 to 7399 ne yavlyaetsya prostym Prakticheskoe primenenieV prakticheskih zadachah dannyj algoritm primenyaetsya redko vvidu ego bolshoj vychislitelnoj slozhnosti odnako ego primenenie opravdano v sluchae esli proveryaemye chisla otnositelno neveliki tak kak dannyj algoritm dovolno legko realizuem Sm takzheImeetsya vikiuchebnik po teme Programmnye realizacii perebora delitelej Resheto Eratosfena Resheto Sundarama Resheto Atkina Test prostotyPrimechaniyaChilds 2009 pp 117 118 Crandall Pomerance 2005 pp 117 119 LiteraturaLindsay N Childs A Concrete Introduction to Higher Algebra 3rd ed New York 2009 603 p Richard Crandall Carl Pomerance Prime numbers A computational perspective 2nd ed New York 2005 597 p SsylkiJavascript Prime Factor Calculator using trial division Arhivnaya kopiya ot 10 yanvarya 2015 na Wayback Machine Sposoben obrabatyvat chisla do 9 1015 Faktorizaciya neopr wikia Data obrasheniya 29 marta 2022 Arhivirovano 28 dekabrya 2018 goda V state ne hvataet ssylok na istochniki sm rekomendacii po poisku Informaciya dolzhna byt proveryaema inache ona mozhet byt udalena Vy mozhete otredaktirovat statyu dobaviv ssylki na avtoritetnye istochniki v vide snosok 20 oktyabrya 2024

NiNa.Az

NiNa.Az - Абсолютно бесплатная система, которая делится для вас информацией и контентом 24 часа в сутки.
Взгляните
Закрыто