Как найти простые множители: разложение по шагам
Дано: число . Найти: каноническое разложение на простые множители и число делителей.
Метод один: перебираем делители по возрастанию, а границу перебора берём не от исходного числа, а от текущего остатка, и она падает после каждого удачного деления. Ответ: , делителей у числа 48. Калькулятор сверху проходит ту же лестницу для любого числа до миллиарда, а ниже разбор по шагам.
Решение по шагам
Дано. . Найти: запись вида и число делителей .
Шаг 1. Оцениваем, до какого числа перебирать. Считаем корень: . Значит наименьший нетривиальный делитель лежит в промежутке от 2 до 227, и выходить за эту границу не нужно.
Шаг 2. Вычерпываем двойки. Число чётное, делим на 2, пока делится:
Число 6489 нечётное, двойки кончились. В разложение уходит : важно вынести всю степень сразу, а не одну двойку.
Шаг 3. Вычерпываем тройки. Сумма цифр числа 6489 равна , она делится на 9, поэтому тройка вынесется как минимум дважды:
У числа 721 сумма цифр равна 10, на 3 оно уже не делится. Получили .
Шаг 4. Работаем с остатком 721. Здесь начинается главная экономия: граница перебора пересчитывается по остатку, а не по исходному числу. Теперь она равна , то есть вместо двух с лишним сотен кандидатов осталось меньше тридцати. Число 721 не оканчивается на 0 или 5, значит пятёрка отпадает; пробуем семёрку:
Шаг 5. Проверяем остаток 103 на простоту. Граница снова падает: , и проверить достаточно 2, 3, 5 и 7. Число нечётное, сумма цифр 4, на 0 или 5 не оканчивается, а . Ни один кандидат не подошёл, следующее простое число 11 даёт , и перебор закончен: 103 простое, вынимаем его целиком.
Шаг 6. Собираем каноническую запись. Выписываем найденные множители в порядке возрастания со степенями:
Проверка обратным умножением обязательна и занимает одну строку: , затем и . Сошлось.
Шаг 7. Считаем число делителей. Каждый показатель увеличиваем на единицу и перемножаем:
Ответ: , число делителей равно 48. Всего понадобилось 15 проверок делимости, тогда как перебор всех чисел до половины исходного потребовал бы 25 955 проверок.
Формула: почему хватает делителей до корня
Пусть число составное, то есть представимо в виде , где оба множителя больше единицы. Один из них обязательно не превосходит корня: если бы одновременно и , то произведение было бы больше , чего быть не может. Отсюда рабочее правило:
Дальше нужно заметить, что этот наименьший делитель обязательно прост. Будь он составным, у него нашёлся бы собственный делитель поменьше, который делил бы и само , а мы взяли самый маленький. Поэтому перебор снизу вверх выдаёт именно простые множители и ничего лишнего.
Отсюда же следует критерий простоты, которым мы закрыли шаг 5: если у числа нет ни одного делителя до его корня, то оно простое. Проверять кандидатов дальше корня бессмысленно, потому что каждому делителю больше корня уже соответствует парный делитель меньше корня, а его мы бы нашли.
Второй важный нюанс касается того, что именно стоит под корнем. Граница пересчитывается для текущего остатка, а не для исходного числа: в разборе она прошла путь 227, затем 26,9 и наконец 10,1. Именно поэтому разложение шестизначного числа укладывается в полтора десятка проверок.
Наконец, перебирать можно все целые числа подряд, а не только простые, и ответ от этого не испортится. Когда очередь доходит до 4, все двойки из остатка уже вынуты, поэтому четвёрка разделить его не сможет; то же с 6, 8, 9 и любым другим составным кандидатом. Таблица простых чисел ускоряет счёт, но для корректности не обязательна.
Число делителей из показателей
Формула выглядит как трюк, хотя доказывается в одну фразу. Любой делитель числа строится только из тех же простых множителей и только в тех же или меньших степенях:
Показатели выбираются независимо друг от друга, поэтому вариантов ровно , и каждый набор даёт свой, ни с чем не совпадающий делитель. Нулевые показатели тоже считаются: они дают единицу и само число.
Тем же способом собираются ещё две школьные величины. Сумма всех делителей получается перемножением сумм степеней каждого простого:
а количество чисел, взаимно простых с и не превосходящих его, равно . Все три функции мультипликативны, то есть считаются по множителям независимо, и в этом же ряду стоит функция Мёбиуса, которая различает разложения со степенями и без. Именно поэтому ответ принято записывать канонически, со степенями, а не длинной цепочкой повторяющихся множителей.
Где перебор перестаёт работать
Число проверок растёт как корень из числа, то есть примерно вдвое медленнее его длины в цифрах. Для шестизначного числа корень - это три сотни кандидатов, для двадцатизначного уже десять миллиардов, а для ключа RSA на 617 цифр перебор бессмысленен: никакой техники не хватит. При этом проверить число на простоту гораздо дешевле, чем разложить его, и вероятностные тесты делают это через возведение в степень по модулю, разобранное в задаче как быстро возвести в степень.
На этом разрыве и держится вся криптография с открытым ключом: перемножить два больших простых легко, а восстановить их из произведения нечем. Квантовый выход из положения существует, но лишь теоретический, и разобран он в статье про алгоритм Шора. Для учебных чисел до миллиона школьный перебор остаётся самым быстрым по времени решения способом.
Частые ошибки
- Перебирают делители до половины числа. Для 51 912 это 25 955 проверок вместо 15. Граница перебора - корень, и она обоснована, а не выбрана для скорости.
- Не пересчитывают границу после каждого деления. Корень надо брать от текущего остатка: после выноса двоек и троек проверять кандидатов до 227 уже не нужно, хватает 26.
- Выносят простой множитель один раз. Из 51 912 двойка вынимается трижды. Если остановиться на первом делении, произведение множителей не даст исходное число, и обратная проверка это сразу покажет.
- Объявляют остаток простым раньше времени. Число 721 нечётное, не делится ни на 3, ни на 5 и выглядит простым, но . Проверку надо доводить до корня, а не бросать после трёх кандидатов.
- Перемножают показатели вместо увеличенных на единицу. Ответ вместо 48 получается именно так. Показатель даёт вариантов, потому что нулевая степень тоже разрешена.
- Вписывают единицу в разложение. Единица не простое число, множителем её не пишут; на число делителей она никак не влияет.
FAQ
Почему достаточно проверять делители только до квадратного корня? Потому что делители ходят парами: если , то один из множителей не больше , а второй не меньше. Найдя все делители до корня, парные к ним мы получаем делением и ничего не теряем.
Обязательно ли перебирать только простые числа? Нет. Составной кандидат никогда не разделит остаток, потому что его собственные простые множители вынуты раньше. Перебор по простым просто короче: для 51 912 это 10 проверок вместо 15.
Как понять, что оставшийся остаток простой? Если ни одно число от 2 до корня из остатка его не делит, остаток прост. В разборе так закрылось число 103: проверили 2, 3, 5 и 7, а уже больше 103, поэтому перебор остановлен.
Чем каноническое разложение лучше простого перечисления множителей? Записью со степенями. Из показателей мгновенно считаются число делителей, их сумма и функция Эйлера, а также наибольший общий делитель и наименьшее общее кратное двух чисел. Список вида 2, 2, 2, 3, 3, 7, 103 всё это скрывает.
Коротко
- Оцени границу перебора: , значит наименьший делитель ищем среди чисел от 2 до 227.
- Вычерпывай простые по возрастанию, каждое до конца: , затем , затем 7.
- После каждого деления пересчитывай границу по остатку: она упала с 227 до 26,9, а потом до 10,1.
- Остаток без делителей до своего корня прост: число 103 вынимается целиком, и разложение готово: .
- Проверь обратным умножением () и посчитай делители по показателям: .
Похожие задачи
Как найти НОК двух чисел: два способа с примером
Как найти НОК двух чисел на примере 126 и 120: разложение на простые множители со старшими степенями, формула через НОД, проверка ответа и задача про шестерни с зубьями.
Теория чисел/криптографияКак найти функцию Эйлера: разбор на числе 7560
Как найти функцию Эйлера: разбор числа 7560 по шагам, каноническое разложение, формула через произведение скобок по простым делителям, проверка мультипликативностью и теорема Эйлера.
Теория чисел/криптографияКак найти обратное по модулю: расширенный алгоритм Евклида
Как найти обратное по модулю: разбор на числах 37 и 120, условие существования через НОД, таблица расширенного алгоритма Евклида, приведение коэффициента и проверка остатка.
Теория чисел/криптографияКак найти первообразный корень: критерий и пример
Как найти первообразный корень по модулю: функция Эйлера, критерий через её простые делители, проверка кандидатов 2, 3, 5 и 6 по модулю 41 и таблица индексов.
Теория чисел/криптографияКак решить систему сравнений: китайская теорема об остатках
Как решить систему сравнений x = 2 (mod 3), x = 3 (mod 5), x = 2 (mod 7): проверка взаимной простоты модулей, сборка ответа по китайской теореме об остатках и проверка подстановкой.
Теория чисел/криптографияКак решить сравнение по модулю: 42x = 30 (mod 78)
Как решить сравнение по модулю на примере 42x = 30 (mod 78): критерий разрешимости через НОД, число решений, сокращение сравнения вместе с модулем и все шесть классов вычетов.