Разложение на множители (факторизация) — различия между версиями
(→Проверка числа на простоту за O(\sqrt{n})) |
(→Разложение на множители за O(\sqrt{n})) |
||
Строка 8: | Строка 8: | ||
==Разложение на множители за <tex>O(\sqrt{n})</tex>== | ==Разложение на множители за <tex>O(\sqrt{n})</tex>== | ||
+ | |||
+ | Для поиска разложения числа на множители воспользуемся так же простым перебором чисел от <tex>1</tex> до <tex>\sqrt{n}</tex>. С помощью алгоритма проверки простоты найдём первый делитель числа <tex>n</tex> - <tex>m</tex>. Далее <tex>n</tex> сокращается в <tex>m</tex> раз и процедура повторяется. По достижении квадратного корня из <tex>n</tex> и невозможности сократить <tex>n</tex> ни на одно из меньших чисел, <tex>n</tex> объявляется неразложимым. |
Версия 08:16, 2 октября 2010
Эта статья находится в разработке!
Проверка числа на простоту за
Обычно перебор делителей заключается в переборе всех целых (как вариант: простых) чисел от 2 до квадратного корня из факторизуемого числа n и в вычислении остатка от деления n на каждое из этих чисел. Если остаток от деления на некоторое число m равен нулю, то m является делителем n. В этом случае либо n объявляется составным, и алгоритм заканчивает работу.
Таким образом, осуществляя проверку на делимость за
и перебирая не более чисел, получаем максимальную оценку времени работы алгоритма: .Разложение на множители за
Для поиска разложения числа на множители воспользуемся так же простым перебором чисел от
до . С помощью алгоритма проверки простоты найдём первый делитель числа - . Далее сокращается в раз и процедура повторяется. По достижении квадратного корня из и невозможности сократить ни на одно из меньших чисел, объявляется неразложимым.