как узнать что число простое

Простые и составные числа, определения, примеры, таблица простых чисел, решето Эратосфена

В статье рассматриваются понятия простых и составных чисел. Даются определения таких чисел с примерами. Приводим доказательство того, что количество простых чисел неограниченно и произведем запись в таблицу простых чисел при помощи метода Эратосфена. Будут приведены доказательства того, является ли число простым или составным.

Простые и составные числа – определения и примеры

Простые и составные числа относят к целым положительным. Они обязательно должны быть больше единицы. Делители также подразделяют на простые и составные. Чтобы понимать понятие составных чисел, необходимо предварительно изучить понятия делителей и кратных.

Составными числами называют целые числа, которые больше единицы и имеют хотя бы три положительных делителя.

Единица не является ни простым ни составным числом. Она имеет только один положительный делитель, поэтому отличается от всех других положительных чисел. Все целые положительные числа называют натуральными, то есть используемые при счете.

Простые числа – это натуральные числа, имеющие только два положительных делителя.

Составное число – это натуральное число, имеющее более двух положительных делителей.

Натуральные числа, которые не являются простыми, называют составными.

Таблица простых чисел

Для того, чтобы было проще использовать простые числа, необходимо использовать таблицу:

как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое

Рассмотрим теорему, которая объясняет последнее утверждение.

Наименьший положительный и отличный от 1 делитель натурального числа, большего единицы, является простым числом.

Простых чисел бесконечно много.

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

Решето Эратосфена

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

как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое

как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое

как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое

как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое

как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое

Перейдем к формулировке теоремы.

Данное число простое или составное?

Перед решением необходимо выяснять, является ли число простым или составным. Зачастую используются признаки делимости. Рассмотрим это на ниже приведенных примере.

Доказать что число 898989898989898989 является составным.

как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое

Ответ: 11723 является составным числом.

Источник

Простые и составные числа

как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое

Статья находится на проверке у методистов Skysmart.
Если вы заметили ошибку, сообщите об этом в онлайн-чат
(в правом нижнем углу экрана).

Основные определения

Натуральные числа больше единицы бывают простые и составные.

Простое число — это натуральное число больше 1, у которого есть всего два делителя: единица и само число.

Составное число — похоже на простое. Это точно такое же натуральное число больше единицы, которое делится на единицу, на само себя и еще хотя бы на одно натуральное число.

Число 1 — не является ни простым, ни составным числом, так как у него только один делитель — 1. Именно этим оно отличается от всех остальных натуральных чисел.

Число 2 — первое наименьшее простое, единственное четное, простое число. Все остальные — нечетные.

Число 4 — первое наименьшее составное число.

В математике есть первые простые и составные числа, но последних таких чисел не существует.

А еще не существует простых чисел, которые оканчиваются на 4, 6, 8 или 0. В числе простых есть только одно число, которое заканчивается на 2 — и это само число 2. Из оканчивающихся на 5 — число 5. Все остальные оканчиваются на 1, 3, 7 или 9, за исключением 21, 27, 33 и 39.

Таблица простых чисел до 1000

23571113171923
293137414347535961
67717379838997101103
107109113127131137139149151
157163167173179181191193197
199211223227229233239241251
257263269271277281283293307
311313317331337347349353359
367373379383389397401409419
421431433439443449457461463
467479487491499503509521523
541547557563569571577587593
599601607613617619631641643
647653659661673677683691701
709719727733739743751757761
769773787797809811821823827
829839853857859863877881883
887907911919929937941947953
967971977983991997

Курсы подготовки к ОГЭ по математике от Skysmart придадут уверенности в себе и помогут освежить знания перед экзаменом.

Источник

Еще раз о поиске простых чисел

как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простоеВ заметке обсуждаются алгоритмы решета для поиска простых чисел. Мы подробно рассмотрим классическое решето Эратосфена, особенности его реализации на популярных языках программирования, параллелизацию и оптимизацию, а затем опишем более современное и быстрое решето Аткина. Если материал о решете Эратосфена предназначен в первую очередь уберечь новичков от регулярного хождения по граблям, то алгоритм решета Аткина ранее на Хабрахабре не описывался.

На снимке — скульптура абстрактного экспрессиониста Марка Ди Суверо «Решето Эратосфена», установленная в кампусе Стэнфорского университета

Введение

Напомним, что число называется простым, если оно имеет ровно два различных делителя: единицу и самого себя. Числа, имеющие большее число делителей, называются составными. Таким образом, если мы умеем раскладывать числа на множители, то мы умеем и проверять числа на простоту. Например, как-то так:
(Здесь и далее, если не оговорено иное, приводится JavaScript-подобный псевдокод)
Время работы такого теста, очевидно, есть O(n ½ ), т. е. растет экспоненциально относительно битовой длины n. Этот тест называется проверкой перебором делителей.

Довольно неожиданно, что существует ряд способов проверить простоту числа, не находя его делителей. Если полиномиальный алгоритм разложения на множители пока остается недостижимой мечтой (на чем и основана стойкость шифрования RSA), то разработанный в 2004 году тест на простоту AKS [1] отрабатывает за полиномиальное время. С различными эффективными тестами на простоту можно ознакомиться по [2].

Если теперь нам нужно найти все простые на достаточно широком интервале, то первым побуждением, наверное, будет протестировать каждое число из интервала индивидуально. К счастью, если у нас достаточно памяти, можно использовать более быстрые (и простые) алгоритмы решета. В этой статье мы обсудим два из них: классическое решето Эратосфена, известное еще древним грекам, и решето Аткина, наиболее совершенный современный алгоритм этого семейства.

Решето Эратосфена

Древнегреческий математик Эратосфен предложил следующий алгоритм для нахождения всех простых, не превосходящих данного числа n. Возьмем массив S длины n и заполним его единицами (пометим как невычеркнутые). Теперь будем последовательно просматривать элементы S[k], начиная с k = 2. Если S[k] = 1, то заполним нулями (вычеркнем или высеем) все последующие ячейки, номера которых кратны k. В результате получим массив, в котором ячейки содержат 1 тогда и только тогда, когда номер ячейки — простое число.

как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое

как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое

Реализация примет следующий вид:

Эффективность решета Эратосфена вызвана крайней простотой внутреннего цикла: он не содержит условных переходов, а также «тяжелых» операций вроде деления и умножения.

Оценим сложность алгоритма. Первое вычеркивание требует n/2 действий, второе — n/3, третье — n/5 и т. д. По формуле Мертенса

как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое

так что для решета Эратосфена потребуется O(n log log n) операций. Потребление памяти же составит O(n).

Оптимизация и параллелизация

Первую оптимизацию решета предложил сам Эратосфен: раз из всех четных чисел простым является только 2, то давайте сэкономим половину памяти и времени и будем выписывать и высеивать только нечетные числа. Реализация такой модификации алгоритма потребует лишь косметических изменений (код).

Наращивая шаг прогрессии и количество решет (например, при шаге прогрессии 210 нам понадобится 48 решет, что сэкономит еще 4% ресурсов) параллельно росту n, удается увеличить скорость алгоритма в log log n раз.

Сегментация

Не надо делать ситечки слишком маленькими, меньше тех же O(n ½-ε ) элементов. Так вы ничего не выиграете в асимптотике потребления памяти, но из-за накладных расходов начнете все сильнее терять в производительности.

Решето Эратосфена и однострочники

На Хабрахабре ранее публиковалась большая подборка алгоритмов Эратосфена в одну строчку на разных языках программирования (однострочники №10). Интересно, что все они на самом деле решетом Эратосфена не являются и реализуют намного более медленные алгоритмы.

Дело в том, что фильтрация множества по условию (например, на Ruby) или использование генераторных списков aka list comprehensions (например, на Haskell) вызывают как раз то, избежать чего призван алгоритм решета, а именно поэлементную проверку делимости. В результате сложность алгоритма возрастает по крайней мере до как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое(это число фильтраций), умноженного на как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое(минимальное число элементов фильтруемого множества), где как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое— число простых, не превосходящих n, т. е. до O(n 3/2-ε ) действий.

Однострочник на Scala ближе к алгоритму Эратосфена тем, что избегает проверки на делимость. Однако сложность построения разности множеств пропорциональна размеру большего из них, так что в результате получаются те же O(n 3/2-ε ) операций.

Вообще решето Эратосфена тяжело эффективно реализовать в рамках функциональной парадигмы неизменяемых переменных. В случае, если функциональный язык (например, OСaml) позволяет, стоит нарушить нормы и завести изменяемый массив. В [3] обсуждается, как грамотно реализовать решето Эратосфена на Haskell при помощи техники ленивых вычеркиваний.

Решето Эратосфена и PHP

Запишем алгоритм Эратосфена на PHP. Получится примерно следующее:

Для решения этих проблем достаточно выбрать более подходящий тип данных — строку!

Теперь каждый элемент занимает ровно 1 байт, а время работы уменьшилось примерно втрое. Скрипт для измерения скорости.

Решето Аткина

В 1999 году Аткин и Бернштейн предложили новый метод высеивания составных чисел, получивший название решета Аткина. Он основан на следующей теореме.

Из элементарной теории чисел следует, что все простые, большие 3, имеют вид 12k+1 (случай 1), 12k+5 (снова 1), 12k+7 (случай 2) или 12k+11 (случай 3).

Для инициализации алгоритма заполним решето S нулями. Теперь для каждой пары (x, y), где как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое, инкрементируем значения в ячейках S[4x 2 +y 2 ], S[3x 2 +y 2 ], а также, если x > y, то и в S[3x 2 −y 2 ]. В конце вычислений номера ячеек вида 6k±1, содержащие нечетные числа, — это или простые, или делятся на квадраты простых.

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

Из описания видно, что сложность решета Аткина пропорциональна n, а не n log log n как у алгоритма Эратосфена.

Авторская, оптимизированная реализация на Си представлена в виде primegen, упрощенная версия — в Википедии. На Хабрахабре публиковалось решето Аткина на C#.

Как и в решете Эратосфена, при помощи wheel factorization и сегментации, можно снизить асимптотическую сложность в log log n раз, а потребление памяти — до O(n ½+o(1) ).

О логарифме логарифма

На самом деле множитель log log n растет крайне. медленно. Например, log log 10 10000 ≈ 10. Поэтому с практической точки зрения его можно полагать константой, а сложность алгоритма Эратосфена — линейной. Если только поиск простых не является ключевой функцией в вашем проекте, можно использовать базовый вариант решета Эратосфена (разве что сэкономьте на четных числах) и не комплексовать по этому поводу. Однако при поиске простых на больших интервалах (от 2 32 ) игра стоит свеч, оптимизации и решето Аткина могут ощутимо повысить производительность.

P. S. В комментариях напомнили про решето Сундарама. К сожалению, оно является лишь математической диковинкой и всегда уступает либо решетам Эратосфена и Аткина, либо проверке перебором делителей.

Источник

Алгоритм проверки на простоту за O (log N)

Проверка на простоту

Чтобы определить, является ли данное число N простым, безусловно, достаточно написать простой цикл поиска делителей числа N:

Данная функция проверки числа на простоту достаточно эффективна — асимптотика ее работы O (sqrt(N)). Однако, иногда в спортивном программировании нужно уметь проверять число на простоту быстрее.

В некоторых случаях, когда требуется выполнять такую проверку для чисел из некоторого диапазона, то целесообразно воспользоваться алгоритмом Решето Эратосфена.

В данной статье я рассмотрю другой способ выполнять единичные проверки на простоту — тест Ферма.

Вероятностный алгоритм за O (log N) с тестом Ферма

Математическое обоснование теста Ферма достаточно хорошо описано здесь.

Я же приведу его конкретную реализацию на C++, а также покажу, как бороться с переполнением типа long long при возведении в степень.

Тест Ферма

Для того, чтобы проверить число N на простоту с достаточно хорошей вероятностью безошибочности, достаточно 100 раз проверить случайное число A тестом Ферма:
как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое

Также стоит отметить, что числа A и N должны быть взаимно просты. Если это условие не выполняется, то число N — заведомо непростое.

Отмечу, что данная функция проверки использует функции нахождения НОД, а также быстрого возведения в степень по модулю.

Нахождение НОД

Собственно, в нахождении НОДа двух чисел проблем меньше всего. Воспользуемся алгоритмом Евклида:

Быстрое возведение в степень по модулю

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

Точно также как и при возведении в степень, если второй множитель четный, то можно разделить его на 2, и перейти к вычислению произведения чисел A и B/2. Иначе, нужно вычислить произведение чисел A и B — 1.

Источник

Что такое Простые числа

Простые числа — это натуральные числа, больше единицы, которые делятся без остатка только на 1 и на само себя. Например: 2, 3, 5, 7, 11, 13, 17, 19, 23. Единица не является ни простым числом, ни составным.

Последовательность простых чисел начинается с 2 и является бесконечной; наименьшее простое число — это 2 (делится на 1 и на самого себя).

Составные числа — это натуральные числа, у которых есть больше двух делителей (1, оно само и например, 2 и/или 3); это противоположность простым числам. Например: 4, 6, 9, 12 (все делятся на 2, на 3, на 1 и на само себя).

Все натуральные числа считаются либо простыми, либо составными (кроме 1).

Натуральные числа — это те числа, которые возникли натуральным образом при счёте предметов; например: 1, 2, 3, 4. (нет ни дробей, ни 0, ни чисел ниже 0).

Зачастую множество простых чисел в математике обозначается буквой P.

Простые числа до 1000

Как определить, является ли число простым?

Очень простой способ понять, является ли число простым — нужно его разделить на простые числа и посмотреть, получится ли целое число. Сначала нужно попробовать его разделить на 2 и/или на 3. Если получилось целое число, то оно не является простым.

Если после первого деления не получилось целого числа, значит нужно попробовать разделить его на другие простые числа: 5, 7, 11 и т. д. (на 9 делить не нужно, т. к. это не простое число и оно делится на 3, а на него вы уже делили).

Более структурированный метод — это решето Эратосфена.

Решето Эратосфена

Это алгоритм поиска простых чисел. Для этого нужно:

Те числа, которые не будут вычеркнуты в конце этого процесса, являются простыми.

Взаимно простые числа

Это натуральные числа, у которых 1 — это единственный общий делитель. Например:

Число Мерсенна

Простое число Мерсенна — это простое число вида:

как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое

До 1536 г. многие считали, что числа такого вида были все простыми, пока математик Ульрих Ригер не доказал, что 2 (^11) – 1 = 2047 было составным (23 x 89). Затем появились и другие составные числа (p = 23, 29, 31, 37 и др.).

Например, для p = 23 это 2 (^23) – 1 = 8 388 607; И 47 x 178481 = 8 388 607, значит оно составное.

Почему 1 не является простым числом?

Российские математики Боревич и Шафаревич в своей знаменитой работе «Теория чисел» (1964 г.) определяют простое число как p (элемент кольца D), не равен ни 0, ни 1. И p можно называть простым числом, если его невозможно разложить на множители ab (т.е. p = ab), притом ни один из них не является единицей в D. Так как 1 невозможно представить ни в одном, ни в другом виде, 1 не считается ни простым числом, ни составным.

Почему 4 не является простым числом?

Простое число — это натуральное число, больше единицы, которое делится без остатка на 1 и на само себя. Т. к. 4 можно разделить на 1, на 2 и на 4, из-за деления на 2 оно не является простым.

Самое большое простое число

21 декабря 2018 года Great Internet Mersenne Prime Search (проект, целью которого является открытие новых простых чисел Мерсенна) обнаружил новое самое большое известное простое число:

как узнать что число простое. Смотреть фото как узнать что число простое. Смотреть картинку как узнать что число простое. Картинка про как узнать что число простое. Фото как узнать что число простое

Новое простое число также именуется M82589933 и в нём более чем на полтора миллиона цифр больше, чем в предыдущем (найденном годом ранее).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

23571113171923
29313741434753596167
717379838997101103107109
113127131137139149