Shadrinsk GIMPS Team
Главная | Каталог статей | Регистрация | Вход
Суббота
04.05.2024
14:47
Приветствую Вас Гость | RSS
Главная » Статьи » Немного истории...

"Простые числа", часть 1, Наталия Макарова
В этой статье хочу представить ещё одну главу из рукописи моей книги "Компьютер решает головоломки”. Одна из представленных глав – "Магические квадраты”. Эта глава впоследствии выросла в большую книгу "Волшебный мир магических квадратов”.

Конечно, сделаны некоторые дополнения к тому, что есть в рукописи, потому что книга была написана 17 лет назад, а с тех пор появилось много нового в этой области. В то же время хочу заметить, что всё это время ничуть не следила за новыми результатами, поэтому прошу не сетовать на пробелы, связанные с этим отставанием. Моя статья не претендует на научность и не представляет полные и исчерпывающие факты по теме. Цель статьи в популярной форме рассказать о простых числах тем, кто впервые знакомится с данным понятием.

Сразу замечу, что простые числа принадлежат множеству натуральных чисел. Евклид определял простые числа так: "Простое число есть измеряемое только единицей”. Иными словами, простые числа не имеют других делителей, кроме единицы и самого себя. Если p простое число, то его можно представить в виде произведения двух натуральных чисел только следующим образом: p = p*1. Числа, не являющиеся простыми, называются составными. Понятно, что всякое составное число имеет не меньше двух делителей отличных от 1. Кроме того, любое составное число N можно представить в виде следующего произведения:

N = p1^q1 * p2^q2 * … * pm^qm, где pi – простые числа, m >= 1, qi >= 1 (при m = 1 q1 > 1, при qi =1 m > 1).

Таким образом, простые числа – это как бы "кирпичики” для строительства всех натуральных чисел. Например, число N = 500 представимо в виде такого произведения:

N = 2^2 * 5^3

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

Деление производится до тех пор, пока слева не получается частное, равное 1; справа находятся простые множители, на которые разложено данное составное число. Однако не всегда так просто разложить заданное число на простые множители. Попробуйте-ка разложить на простые множители число N = 13593. Конечно, очевидно, что это число делится на 3, потому что сумма цифр числа делится на 3. Разделив число на 3, получаем число 4531. Это число не делится ни на 2, ни на 3, ни на 5, ни на 7. Итак, пока вы не дойдёте до первого простого числа, на которое полученное число делится, вы не продвинетесь ни на йоту в разложении этого числа на простые множители.

При разложении составного числа на простые множители используются признаки делимости. Признаки делимости на 2, 3 и 5 очень простые. Число делится: а) на 2 тогда и только тогда, когда его последняя цифра чётная; б) на 3 тогда и только тогда, когда сумма цифр этого числа делится на 3; в) на 5 тогда и только тогда, когда его последняя цифра 0 или 5. Признак делимости на 11: надо присвоить цифрам числа, начиная справа, попеременно знак "плюс” и знак "минус”, последняя цифра берётся со знаком "плюс”; затем сложить полученные значения. Исходное число делится на 11 тогда и только тогда, когда полученная сумма делится на 11. Пусть, например, надо определить, делится ли на 11 число 14399. Составляем сумму: 9 + (-9) + 3 + (-4) + 1 = 0. Полученная сумма делится на 11, следовательно, данное число тоже делится на 11. Так, можно сразу сказать, что любое число, составленное из чётного количества единиц (например: 1111, 11111111) делится на 11, а всякое число, составленное из нечётного количества единиц (например: 111, 1111111) не делится на 11. Точно так же можно определить, делится ли на 11, любое число, составленное другой цифрой, например: 3333333, 8888.

Признаков делимости на 7 существует несколько, но в [2] отмечается, что все они требуют не меньше затрат времени, чем обычное деление числа на 7. Это значит, что проще поделить число на 7 обычным образом, чем применять признак делимости. Подробнее о признаках делимости можно прочитать в [2].

Число 1 не относится к простым числам. "Математики предпочитают не считать 1 простым числом, поскольку в таком случае многие важные теоремы формулируются проще. Например, «основная теорема теории чисел» утверждает, что любое целое число допускает однозначное (с точностью до порядка множителей) разложение на простые множители. Так число 100 представимо в виде произведения четырёх простых множителей 2*2*5*5. Всякий другой набор (отличающийся хотя бы одним числом) простых множителей не даст в произведении числа 100. Если же считать единицу простым числом, то эта весьма важная теорема неверна: число 100 в этом случае представимо в виде произведения бесконечно многих различных наборов простых чисел, например, в виде 2*2*5*5*1*1”. [2]

Единственное чётное простое число 2. Все остальные простые числа нечётные, то есть любое простое число, отличное от 2, можно записать в виде: p = 2k + 1 (k >= 1).

Как уже сказано, множество простых чисел является подмножеством множества натуральных чисел. Как и множество натуральных чисел, множество простых чисел бесконечно. Это доказал Евклид. Приведу здесь доказательство этого утверждения, взятое в [3]. Положим, что ряд простых чисел ограничен и исчерпывается числами 2, 3, 5, …, p; в таком случае число N = (2*3*5* … *p) + 1, очевидно, не делится ни на 2, ни на 3, … ни на p, так как при делении на каждое из этих чисел мы получаем в остатке единицу. Поэтому должно иметь место одно из двух: либо это есть простое число, либо существуют простые числа, отличные от 2, 3, …, p. Но то и другое противоречит нашему предположению, и теорема, таким образом, доказана.
Для начала приведу ряд простых чисел в интервале (1, 500). Cделаю это в форме таблицы, чтобы лучше увидеть, как распределяются простые числа в  ряду натуральных чисел (рис. 1). Ячейки, содержащие простые числа, выделены оранжевым цветом.

Рис. 1
Рис. 1

Вот так причудливо располагаются простые числа в ряду натуральных чисел! Обратите внимание на простые числа, которые находятся рядом, например: 2 и 3; 5 и 7; 11 и 13; 17 и 19 и т. д. Такие пары простых чисел называются близнецами. До сих пор неизвестно, конечно или бесконечно число пар близнецов. Однако, ясно, что по мере возрастания чисел близнецы встречаются всё реже и реже.

Плотность распределения простых чисел среди натурального ряда различна, есть участки, где простые числа располагаются гуще. Вместе с тем, существуют целые оазисы, не содержащие ни одного простого числа. Справедливо следующее утверждение:

ТЕОРЕМА   1
Для любого натурального k можно указать ряд из k последовательных натуральных чисел, в котором нет ни одного простого числа.

Предлагаю читателям доказать эту теорему.

Основная трудность в нахождении всех простых чисел состоит в том, что математикам не удаётся установить закон распределения простых чисел. Количество простых чисел, не превосходящих N, обозначается pi(N). Около 1800 г. два математика (А. Лежандр и К. Гаусс) независимо друг от друга высказали гипотезу, согласно которой

pi(N) примерно равно N/ln N

и что данное приближение тем лучше, чем больше N. Эта гипотеза впоследствии получила название теоремы об асимптотическом распределении простых чисел и была строго доказана в 1896 г. [2]

Например, количество простых чисел, не превосходящих 1000, оценивается числом 1000/ln1000, что примерно равно 145. Точное значение количества простых чисел, не превосходящих 1000, pi(1000) = 168.

Величина pi(N)/N называется средней плотностью простых чисел среди первых N натуральных чисел. Изучение таблиц простых чисел показывает, что с ростом N простые числа встречаются в среднем всё реже. Эйлер доказал, что lim (pi(N)/N) = 0 при N стремящемся к бесконечности. Отсюда, в частности, следует, что простые числа в среднем располагаются реже, чем члены какой угодно арифметической прогрессии. Можно доказать, что простые числа располагаются всё же гуще квадратов натуральных чисел.

В 1837 г. немецкий математик Л. Дирихле доказал, что в любой арифметической прогрессии, первый член и разность которой взаимно просты (определение взаимно простых чисел см. далее), есть бесконечно много простых чисел.

В 1852 г. П. Л. Чебышев доказал предположение французского математика Ж. Бертрана о том, что для любого натурального числа N между числами N и 2N всегда есть простое число. [5]

Л. Эйлер
Леонард   Эйлер (1707 – 1783)
Примечание: портрет Леонарда Эйлера из [6].

Самый знаменитый квадратичный трёхчлен Л. Эйлера, производящий простые числа:
x^2 + x + 41

Первые 40 значений этого трёхчлена (при x = 0, 1, 2, …, 39) являются простыми числами.
Из 2398 первых значений, принимаемых этим трёхчленом, ровно половина - простые числа. Перебрав все значения знаменитого трёхчлена, не превышающие 10 000 000, Улам, Стейн и Уэллс обнаружили, что доля простых чисел среди них составляет 0, 475… . [2]

Составив программку вычисления значений данного трёхчлена Эйлера, я получила 200 первых значений (x принимает значения от 0 до 199). Вот они:
41 43  47  53  61  71  83  97  113  131  151  173  197  223  251  281  313  347  383  421  461  503  547  593  641  691  743  797  853  911  971  1033  1097  1163  1231  1301  1373  1447  1523  1601  1681  1763  1847  1933  2021  2111  2203  2297  2393  2491  2591  2693  2797  2903  3011  3121  3233  3347  3463  3581  3701  3823  3947  4073  4201  4331  4463  4597  4733  4871  5011  5153  5297  5443  5591  5741  5893  6047  6203  6361  6521  6683  6847  7013  7181  7351  7523  7697  7873  8051  8231  8413  8597  8783  8971  9161  9353  9547  9743  9941  10141  10343  10547  10753  10961  11171  11383  11597  11813  12031  12251  12473  12697  12923  13151  13381  13613  13847  14083  14321  14561  14803  15047  15293  15541  15791  16043  16297  16553  16811  17071  17333  17597  17863  18131  18401  18673  18947  19223  19501  19781  20063  20347  20633  20921  21211  21503  21797  22093  22391  22691  22993  23297  23603  23911  24221  24533  24847  25163  25481  25801  26123  26447  26773  27101  27431  27763  28097  28433  28771  29111  29453  29797  30143  30491  30841  31193  31547  31903  32261  32621  32983  33347  33713  34081  34451  34823  35197  35573  35951  36331  36713  37097  37483  37871  38261  38653  39047  39443  39841

Предлагаю читателям найти среди этих значений простые числа, не считая первых выделенных сорока.
Впоследствии подобные трёхчлены получили название "генераторы простых чисел” [7]. О спирали Улама см. в [2].

В этой спирали все 40 простых чисел, которые даёт рассматриваемый трёхчлен Эйлера при x = 0, 1, 2, …, 39, расположились на диагонали квадрата 40х40.
Аналогичный квадратичный трёхчлен, который тоже найден Эйлером: x^2 + x + 17. Этот трёхчлен при x, принимающем значения от 0 до 15, даёт только простые числа. На рис. 1б вы видите спираль Улама для этого трёхчлена.

Рис. 1а
Рис. 1а

Все 16 первых простых чисел, которые порождает данный трёхчлен, тоже расположились на диагонали квадрата. В квадрате выделены также остальные простые числа, находящиеся на этой спирали Улама. Интересно отметить, что те же самые 16 простых чисел этот трёхчлен даёт при x, принимающем значения от -1 до -16. Преобразовав рассматриваемый трёхчлен, можно получить такое выражение:
(x + 1)^2 – (x + 1) + 17 = y^2 – y + 17

Новый трёхчлен порождает те же самые простые числа при y, принимающем значения от 1 до 16 (или при y = 0, -1, -2, …, -15). Точно так же можно записать и рассмотренный выше трёхчлен Эйлера:
y^2 – y + 41

Этот трёхчлен порождает те же самые 40 простых чисел при y = 1, 2, 3, …, 40 (или при y = 0, -1, -2, …, -39).
М. Гарднер в своей книге пишет: спираль Улама – забава, но её следует принимать всерьёз.

В [5] написано: легко доказать, что не существует многочлена от одной переменной, значения которого при всех целых значениях переменной есть простые числа. Вместе с тем, советский математик Ю. В. Матиясевич доказал, что существует многочлен от нескольких переменных, который принимает все простые значения по одному разу, причём все положительные его значения – простые числа.

И ещё одна формула для простых чисел была предложена П. Ферма. Он высказал предположение, что все числа вида 2^p + 1, где p = 2^k, простые. При k = 0, 1, 2, 3 , 4 получаются такие простые числа: 3, 5, 17, 257, 65537. Однако Эйлер опроверг это предположение, доказав, что при k = 5 число 2^p + 1 (p = 2^5) составное. В самом деле:
2^32 + 1 = 4294967297 = 641 * 6700417

В [3] написано, что вопрос о том, при каких значениях k числа указанного вида являются простыми, остаётся и по сей день нерешённым. Вполне возможно, что в настоящее время уже есть ответ на этот вопрос или хотя бы приближение к ответу.

П. Ферма
Пьер Ферма (1601 – 1665)
Примечание: портрет Пьера Ферма из [5].

Кстати, с простыми числами указанного вида связана задача  о том, какие правильные многоугольники можно построить с помощью циркуля и линейки. Гаусс установил, что для всех простых n, имеющих вид:
n = 2^p + 1 (p = 2^k)

возможно деление окружности на равные части циркулем и линейкой; при других же простых значениях n такое деление невозможно.

Для случаев n = 3 и n = 5 деление окружности на n равных частей с помощью циркуля и линейки было хорошо известно ещё в древности. А вот построение правильного семнадцатиугольника посредством циркуля и линейки было обнаружено Гауссом впервые. [3]

Как уже было отмечено, современные компьютеры по составленным программам, заложенным в пакеты математических программ типа Maple, могут в считанные секунды проверить очень большие числа на простоту. Во времена Эйлера такая проверка даже для шести- и семизначных чисел требовала длительных вычислений. Эйлер однажды заявил, что число 1000009 простое, но потом обнаружил, что оно является произведением двух простых чисел: 293 и 3413. По тем временам это было крупное достижение, если к тому же учесть, что Эйлеру в это время было за 70 и он уже ослеп. Пьера Ферма в одном из писем спросили, простое ли число 100895598169. Он очень быстро ответил, что это число является произведением таких простых чисел: 898423 и 112303. В 1874 г. У. Стенли Джевонс вопрошал в своей книге "Основы науки”: "Может ли читатель сказать, произведение каких двух чисел равно 8616460799? Думаю, что вряд ли кто-нибудь, кроме меня самого, сумеет дать ответ на этот вопрос, ибо это два больших простых числа”. Конечно, Джевонс не мог знать, что современный компьютер найдёт оба эти числа быстрее, чем он мог бы их перемножить. [2]

Оказывается, натуральные числа раскладываются не только на произведение простых чисел, но и на сумму простых чисел. Это знаменитая проблема Х. Гольдбаха. Гольдбах высказал следующее предположение: а) всякое нечётное число, большее шести, есть сумма трёх простых чисел; б) всякое чётное число есть сумма двух простых чисел.

Например, 25 = 3 + 5 + 17, 26 = 7 + 19, 40 = 17 + 23.

В 1937 г. академик И. М. Виноградов с помощью разработанного им метода оценок тригонометрических сумм доказал, что каждое достаточно большое нечётное число действительно является суммой трёх простых чисел. [6]

Подробнее о других проблемах, связанных с простыми числами, смотрите в статье "Простые числа” в Википедии (ссылка в конце статьи). Как я поняла из этой статьи, проблема Гольдбаха не решена до сих пор.

Примечание: если число 1 не считать простым числом, то вторую часть гипотезы Гольдбаха следует сформулировать так: всякое чётное число большее 2 есть сумма двух простых чисел. Однако в [6], откуда я взяла приведённую формулировку этой гипотезы, написано так, как представлено выше. У меня возникает подозрение, что во времена Гольдбаха число 1 считалось простым числом. Тогда всё правильно, число 2 тоже представимо в виде суммы двух простых чисел: 1 + 1. В таком случае первая часть гипотезы автоматически следует из второй части, потому что любое нечётное число есть сумма чётного числа и единицы. Но тогда в первой части гипотезы непонятно ограничение "большее шести”.

В знаменитом магическом квадрате 3-го порядка из простых чисел, построенном Дьюдени, присутствует число 1. Есть это число и в известном магическом квадрате 12-го порядка из простых чисел Дж. Манси, построенном в 1913 г.

РЕШЕТО   ЭРАТОСФЕНА

Как же искать простые числа в ряду последовательных натуральных чисел? Древнейший алгоритм такого поиска был предложен 2000 лет назад астрономом и географом из Александрии Эратосфеном. Этот алгоритм получил название "решето Эратосфена”.

Опишу подробно алгоритм Эратосфена. Пусть нам надо найти все простые числа в диапазоне от 1 до N. Выпишем подряд все числа от 2 до N. Зачеркнём в этом списке каждое второе число из следующих за числом 2. Таким образом мы отсеем все числа кратные числу 2. Число 2 является первым простым числом.

Следующее не зачёркнутое число в списке после числа 2 – число 3. Это второе простое число. Повторим процедуру отсеивания, только теперь будем зачёркивать каждое третье число из следующих за числом 3. Так отсеем все числа кратные 3. Процедуру отсеивания следует повторять до тех пор, пока не доберёмся до простого числа, которое больше квадратного корня из N. Все числа, оставшиеся не зачёркнутыми в списке, будут простыми. Приведу иллюстрацию описанного метода для N = 50. Сначала покажу, как будет выглядеть список чисел после отсеивания чисел кратных 2:

2,  3,  /4/,  5,  /6/,  7,  /8/,  9,  /10/,  11,  /12/,  13,  /14/,  15,  /16/,  17,  /18/,  19,  /20/,  21,  /22/,  23,  /24/,  25,  /26/,  27,  /28/,  29,  /30/
31,  /32/,  33,  /34/,  35,  /36/,  37,  /38/,  39,  /40/,  41,  /42/,  43,  /44/,  45,  /46/,  47,  /48/,  49,  /50/

Примечание: зачёркнутые числа заключены в две наклонные черты / /.

Теперь покажу, как выглядит список после вычёркивания всех чисел кратных 3:
2,  3,  /4/,  5,  /6/,  7,  /8/,  /9/,  /10/,  11,  /12/,  13,  /14/,  /15/,  /16/,  17,  /18/,  19,  /20/,  /21/,  /22/,  23,  /24/,  25,  /26/,  /27/,  /28/,  29,  /30/
31,  /32/,  /33/,  /34/,  35,  /36/,  37,  /38/,  /39/,  /40/,  41,  /42/,  43,  /44/,  /45/,  /46/,  47,  /48/,  49,  /50/

Осталось два этапа: вычеркнуть все числа кратные 5 и кратные 7. Окончательно получим такой список простых чисел (простые числа выделены полужирным шрифтом):

23,  /4/,  5,  /6/,  7,  /8/,  /9/,  /10/,  11,  /12/,  13,  /14/,  /15/,  /16/,  17,  /18/,  19,  /20/,  /21/,  /22/,  23,  /24/,  /25/,  /26/,  /27/,  /28/,  29,  /30/
31,  /32/,  /33/,  /34/,  /35/,  /36/,  37,  /38/,  /39/,  /40/,  41,  /42/,  43,  /44/,  /45/,  /46/,  47,  /48/,  /49/,  /50/

В этом примере процедура отсеивания (зачёркивания) завершилась на простом числе 7, то есть последний раз мы зачёркивали в этом списке каждое седьмое число, следующее за числом 7. Числа кратные 11 мы уже не будем зачёркивать (отсеивать), так как это число больше квадратного корня из 50.

Покажу ещё один оригинальный приём реализации решета Эратосфена из [2] (стр. 411 – 412). Здесь находятся все простые числа в интервале от 1 до 100. Все числа от 1 до 100 помещаются в прямоугольную таблицу (рис. 2).


Рис. 2

Процедура отсеивания выполняется следующим образом. Вычеркнем все числа кратные 2, за исключением самой двойки, проведя вертикальные черты во втором, четвёртом и шестом столбцах. Вычеркнем все числа кратные 3 (сама тройка остаётся), проведя вертикальную черту в третьем столбце. Следующее за 3 не вычеркнутое число равно 5. Чтобы вычеркнуть числа кратные 5, проведём диагонали, идущие вниз и влево (число 5 остаётся). Оставшиеся в таблице числа кратные 7 вычеркнем, проведя диагонали с наклоном вправо и вниз. Наша работа по составлению списка простых чисел, не превосходящих числа 100, на этом заканчивается, поскольку следующее простое число 11 больше квадратного корня из 100. Если бы таблица была больше, то нам пришлось бы исключать числа кратные 11, проводя диагонали с более крутым наклоном. Все не зачёркнутые числа в таблице на рис. 2, кроме числа 1, являются простыми (они выделены красным цветом).

Во времена Эратосфена писали на восковых дощечках, а вместо того, чтобы числа зачёркивать, дощечку в нужном месте прокалывали. Отсюда и произошло название способа – "решето Эратосфена”: составные числа как бы "просеивались” в проколотые дырки, а простые числа оставались в "решете”.

Понятно, что алгоритм Эратосфена нетрудно реализовать. Существует множество программ, составленных разными авторами. Есть программа, например, в [4] (стр. 305). Можно посмотреть и реализацию алгоритма, выполненную в Википедии. А лучше всего составить свою программу.

РЕШЕТО   СУНДАРАМА

Ещё одно интересное "решето” для нахождения простых чисел было предложено в 1934 году индийским математиком С. П. Сундарамом. Он придумал очень оригинальную таблицу, состоящую из бесконечного количества бесконечных арифметических прогрессий, причём каждый член первой прогрессии начинает новую прогрессию (с новой строки таблицы). Разностями прогрессий являются все нечётные числа, начиная с 3. На рис. 3 вы видите начало таблицы Сундарама.

Рис. 3
Рис. 3

Таблица бесконечно продолжается вправо и вниз. Разность арифметической прогрессии, записанной в первой строке таблицы, равна 3, разность арифметической прогрессии, записанной во второй строке таблицы, равна 5 и т. д. (все нечётные числа подряд являются разностями прогрессий).

Как же находить простые числа с помощью таблицы Сундарама? Оказывается, эта таблица обладает таким свойством: если некоторое число N содержится в таблице Сундарама, то число 2*N + 1 будет обязательно составным, а если число N не содержится в этой таблице, то число 2*N + 1 будет простым. Например, число 4 содержится в таблице, следовательно, число 2*4 + 1 = 9 составное; числа 5 нет в таблице, следовательно, число 2*5 + 1 = 11 простое. Доказательство этого свойства таблицы Сундарама вы можете найти в [1] (стр. 563 – 564).

Я реализовала метод Сундарама. Вот текст программы, написанный на языке QBASIC:

Программа для решета Сундарама:

5 PRINT "VVEDITE M"
7 INPUT M
8 IF INT(M / 2) <> M / 2 THEN 5
9 IF M < 4 THEN 5
10 PRINT "VVEDITE L"
11 INPUT L
12 FOR I = M + 1 TO L STEP 2
15 B = I: A = (B - 1) / 2
17 C = A - 1
20 FOR N = 1 TO C
25 K = (A - N) / (1 + 2 * N)
30 IF INT(K) = K THEN 40
35 NEXT N
36 W = W + 1: PRINT "#"; W
37 PRINT B
40 NEXT I
45 PRINT
50 END


Программа работает очень просто. Надо ввести в программу чётное натуральное число M >= 4 и любое натуральное число L > M. Программа выдаст все простые числа в диапазоне от M+1 до L. Недостаток программы: при M = 4 теряются два простых числа: 2 и 3. Но этот недостаток очень легко устранить, если вставить в программу блок простой печати указанных простых чисел в случае, когда M = 4. По этой программе я получила следующий ряд простых чисел в интервале от 5 до 1000 (M = 4, L = 1000):

5  7  11  13  17  19  23  29  31  37  41  43  47  53  59  61  67  71  73  79  83  89  97  101  103  107  109  113  127  131  137  139  149  151  157  163  167  173  179  181  191  193  197  199  211  223  227  229  233  239  241  251  257  263  269  271  277  281  283  293  307  311  313  317  331  337  347  349  353  359  367  373  379  383  389  397  401  409  419  421  431  433  439  443  449  457  461  463  467  479  487  491  499  503  509  521  523  541  547  557  563  569  571  577  587  593  599  601  607  613  617  619  631  641  643  647  653  659  661  673  677  683  691  701  709  719  727  733  739  743  751  757  761  769  773  787  797  809  811  821  823  827  829  839  853  857  859  863  877  881  883  887  907  911  919  929  937  941  947  953  967  971  977  983  991  997

Замечу, что при выполнении программы был открыт файл для вывода простых чисел. В приведённом варианте программы простые числа выводятся только на экран монитора. При этом перед каждым простым числом выводится его порядковый номер.

А это результат, выданный программой при M = 1000, L = 2000:

1009  1013  1019  1021  1031  1033  1039  1049  1051  1061  1063  1069  1087  1091  1093  1097  1103  1109  1117  1123  1129  1151  1153  1163  1171  1181  1187  1193  1201  1213  1217  1223  1229  1231  1237  1249  1259  1277  1279  1283  1289  1291  1297  1301  1303  1307  1319  1321  1327  1361  1367  1373  1381  1399  1409  1423  1427  1429  1433  1439  1447  1451  1453  1459  1471  1481  1483  1487  1489  1493  1499  1511  1523  1531  1543  1549  1553  1559  1567  1571  1579  1583  1597  1601  1607  1609  1613  1619  1621  1627  1637  1657  1663  1667  1669  1693  1697  1699  1709  1721  1723  1733  1741  1747  1753  1759  1777  1783  1787  1789  1801  1811  1823  1831  1847  1861  1867  1871  1873  1877  1879  1889  1901  1907  1913  1931  1933  1949  1951  1973  1979  1987  1993  1997  1999

На форуме dxdy.ru по моей просьбе приведённая программа переписана на двух других языках программирования: Pascal и Turbo C++ 3.0. Вы можете посмотреть эти программы по следующей ссылке.

В моей реализации решета Сундарама использовано следующее утверждение:

ТЕОРЕМА   2
Любое число A, находящееся в таблице Сундарама, может быть представлено в виде: A = (1 + 2 * N) * K + N,
где N – номер строки таблицы, в которой находится данное число, K – порядковый номер числа в этой строке.

Теорема доказывается просто. Оставляю доказательство читателям.

Другую программу для решета Сундарама вы можете найти в Википедии в статье "Решето Сундарама”.

Отмечу, что в программе, приведённой в указанной статье Википедии, простые числа находятся только с начала ряда натуральных чисел до некоторого n. В этом неудобство программы в тех случаях, когда простые числа надо найти в некотором интервале, находящемся не в начале натурального ряда. Кроме того, моя реализация принципиально отличается от реализации, приведённой в Википедии. В моей программе меньше циклов и поэтому выполняется она быстрее.

Однако решето Сундарама в любом случае не работает для очень больших чисел за реальное время. Так, например, я смогла выполнить свою программу для интервала [10^7 + 1, 10^7 + 100) довольно быстро, а при M = 10^8, L = 10^8 + 100 программа надолго "задумалась”; я не стала ждать, когда она что-нибудь выдаст, и прервала её.

Приведу интересную задачу о простых числах, состоящих из единиц. Генри Э. Дьюдени ещё в 1907 году отметил, что  11 – единственное из известных в то время простых чисел, которое состоит из одних единиц. Понятно, что число, в записи которого участвует любая другая цифра, составное, например: 3333, 55555. Дьюдени доказал, что все числа, состоящие из 3, 4, 5, … , 18 единиц, составные.

Следует заметить, что справедлива следующая теорема:

ТЕОРЕМА   3
Если число N составное, то число, составленное из N единиц тоже составное.

Теорема доказывается очень просто.

Дьюдени заинтересовался такими "единичными” простыми числами. Один из его читателей доказал, что число, состоящее из 19 единиц, простое. Позднее было установлено, что число, записанное с помощью 23 единиц, также простое. В то время, когда я писала книгу, было известно, что числа, состоящие из 29, 31, 37, 41, 43, 53, 61 и 73 единиц, составные. Первым кандидатом на простое было число, составленное из 47 единиц. Я попробовала решить эту задачу, то есть установить, является ли число, состоящее из 47 единиц, простым. И сделать это пыталась как раз с помощью приведённой в теореме 2 формулы. Обозначим число, состоящее из 47 единиц, В. Чтобы ответить на вопрос, является число В простым или составным, надо установить, находится ли соответствующее ему число А в таблице Сундарама. Число А находится из уравнения:
2 * A + 1 = B

Получаем, что число А = 55…5 (в записи числа А имеется 46 пятёрок).

Согласно теореме 2, если число А находится в таблице Сундарама, то оно должно быть представимо в виде:
A = (1 + 2 * N) * K + N,
где K и N – натуральные числа.

Следовательно, задача свелась к решению приведённого уравнения в натуральных числах. Удобнее представить это уравнение в таком виде:
[1]  K = (A – N)/(1 + 2 * N)

Эта формула и положена в основу моей реализации решета Сундарама. Если данное уравнение не имеет решения в натуральных числах, то числа А нет в таблице Сундарама, а это означает, что соответствующее число В = 2 * А + 1 простое.

Однако для числа А, состоящего из 46 пятёрок, мне не удалось решить это уравнение (язык QBASIC не работает с такими большими числами). Поэтому эта задача тогда так и осталась у меня нерешённой.

Сейчас существует пакет математических программ Maple, который позволяет решать аналогичные задачи за одну секунду. На форуме, где я привела эту задачу, её решили сразу с помощью Maple. Оказалось, что число, составленное из 47 единиц, составное. Однако мне так и не ответили на вопрос, чему равны K и N, то есть в какой строке и с каким порядковым номером в этой строке находится в таблице Сундарама число А, состоящее из 46 пятёрок. А коль скоро число В, состоящее из 47 единиц, составное, число А, состоящее из 46 пятёрок, обязательно содержится в таблице Сундарама.

Приведу пример для небольшого числа А. Пусть А = 5555. В этом случае уравнение [1] имеет такое решение: N = 20, K = 135. Это значит, что в 20-ой строке таблицы Сундарама 135-ый член равен 5555, следовательно, число В = 2 * 5555 + 1 = 11111 составное.

Примечание: отмечу, что уравнение [1] в случае, когда число A содержится в таблице Сундарама, имеет не единственное решение. Рассмотрим пример для A = 22. Это число находится в таблице Сундарама в четырёх строках: первой, второй, четвёртой и седьмой.. Соответственно уравнение [1] имеет четыре решения:

1. N = 1, K = 7
2. N = 2, K = 4
3. N = 4, K = 2
4. N = 7, K = 1.

Только при A = 4 решение уравнения [1] будет единственным: N = 1, K = 1.

Для решения вопроса, является число B = 2*A + 1 простым или составным, достаточно найти одно решение уравнения [1] в натуральных числах.

С помощью приведённой выше программы для решета Сундарама можно проверить не очень большое число, является ли оно простым. Приведу два примера.

Пример 1. Требуется проверить число 10^5 + 1. Введём в программу M = 10^5, L = 10^5 + 1. Программы выполнит проверку только одного числа M + 1 = 10^5 + 1. Результат – данное число составное.

Пример 2. Требуется проверить число 10^6 + 121. Введём в программу M = 10^6 + 120, L = 10^6 + 121. Программы выполнит проверку числа M + 1 = 10^6 + 121. Результат выполнения программы – это число простое (программа выведет его на экран монитора).

Ещё один алгоритм нахождения простых чисел не связан ни с решетом Эратосфена, ни с решетом Сундарама. Здесь всё выполняется, что называется, "в лоб”: для каждого числа N проверяется, нет ли у него делителей в интервале от 2 до [v N]. Реализацию этого алгоритма тоже можно найти в [4] (стр. 306). Впрочем, алгоритм очень просто реализовать.

РЕШЕТО   АТКИНА


Решето Аткина – это современный оптимизированный вариант решета Эратосфена.

Я не разбиралась с этим решетом. Предоставляю данный метод читателям для самостоятельного изучения. В помощь даю ссылку на форум "Портал Естественных Наук”, где в теме "Алгоритм «решета Эратосфена»” подробно рассматривается вопрос о решете Аткина, приведён текст программы, как я поняла, полученный из текста в Википедии незначительными изменениями.

ЧИСЛА   МЕРСЕННА

Числа вида 2^p – 1, где p – простое число, называются числами Мерсенна, впервые заметившего, что среди таких чисел много простых. В течение почти 200 лет математики считали, что число Мерсенна 2^67 – 1 простое. Эрик Темриль Белл в своей книге "Математика – царица и служанка науки” рассказывает о заседании американского математического общества, состоявшемся в октябре 1903 г. в Нью-Йорке, на котором выступил с сообщением профессор Коул. "Коул, человек немногословный, подошёл к доске и, не говоря ни слова, начал возводить 2 в степень 67. Затем он вычел из полученного числа 1 и, по-прежнему не говоря ни слова, перешёл на чистую часть доски, где столбиком перемножил два числа: 193707721 и 761838257287. Оба результата совпали… Впервые в истории американского математического общества его члены бурными аплодисментами приветствовали докладчика. Коул, так и не проронив ни слова, сел на место. Никто не задал ему ни одного вопроса. Через несколько лет Белл спросил у Коула, сколько времени тот потратил, чтобы разложить число на множители. ”Все воскресенья в течение трёх лет”, - ответил Коул. [2]

Далее приведены девять первых чисел Мерсенна, среди которых выделены полужирным шрифтом простые числа:

3,   7,   31127,   2047,  8191131071524287,  8388607

Как видите, среди первых девяти чисел Мерсенна только два составные. В то время, когда Гарднер писал свою книгу "Математические досуги”, было известно такое максимальное простое число Мерсенна: 2^11213 – 1. Запись этого числа содержит около 3376 цифр. Это число обнаружил в 1963 г. с помощью ЭВМ Дональд Б. Джиллис. Это же число являлось и самым большим из известных простых чисел. [2]

В [5] уже приводится гораздо большее простое число Мерсенна:  2^132049 – 1. И опять же это число было самым большим из известных простых чисел.

В настоящее время составлены специальные программы для поиска чисел Мерсенна. Смотрите, например, тему "Взаимно простые числа” форума "Портал Естественных Наук”.

В статье "Простые числа” Википедии (ссылку см. в конце второй части статьи) сообщается, что самым большим простым числом по состоянию на сентябрь 2008 г. является число Мерсенна  2^43112609 – 1. Оно было найдено 23 августа 2008 г. на математическом факультете университета UCLA в рамках проекта по распределённому поиску чисел Мерсенна GIMPS. В десятичной записи этого числа содержится около 13 миллионов цифр. Это 46-ое число Мерсенна. Насколько  понимаю, 47-ое число Мерсенна ещё не найдено.

Примечание: 12 апреля 2009 г. открыто 47-е простое число Мерсенна 2^42643801-1. Оно же является самым большим простым числом по состоянию на сентябрь 2010 г.

Поскольку для чисел Мерсенна существует тест проверки на простоту, уже несколько лет именно эти числа держат рекорд самого большого простого числа.

ВЗАИМНО ПРОСТЫЕ ЧИСЛА

Два числа n и m называются взаимно простыми, если они не имеют общих делителей, кроме 1. Обычно это записывают так: (n, m) = 1.

Так, например, числа 10 и 33 взаимно просты. Чтобы определить, являются ли два числа взаимно простыми, надо разложить их на простые множители.

Если p – простое число и a не делится на p, то n = (a^p-1 – 1) всегда делится на p. Эта теорема носит название "малой теоремы Ферма”; она имеет очень большое значение для теории сравнений.

Эйлер ввёл функцию ph(m), которая называется функцией Эйлера. Эта функция определяет количество натуральных чисел меньших числа m и взаимно простых с ним. Так, ph(6) = 2, ph(10) = 4. Если m простое число, то все меньшие числа взаимно просты с m и ph(m) = m – 1. Например, ph(11) = 10.

Эйлер обобщил малую теорему Ферма и доказал, что если a и m взаимно простые числа, то (a^ph(m) – 1) делится на m. Это утверждение называется теоремой Эйлера о сравнениях. [6]

Продолжение статьи


Источник: http://www.natalimak1.narod.ru/prost.htm
Категория: Немного истории... | Добавил: Skmz (01.09.2010)
Просмотров: 23693 | Комментарии: 7 | Рейтинг: 0.0/0
Всего комментариев: 7
7 pampCoods  
0
[color=color_url - Привет всем дорогие форумчане. Увидел наш хороший сайт http://shadr-gimps.ucoz.ru и понял что тут мне помогут.
Прошу всех желающих присоедениться.
Выбрав эту тему этот надеюсь нужную, если не ту прошу Администраторов перенести ее в раздел которая более подходящая.
Я очень смотреть фильмы. У кого скоросной инет могут себе позволить http://kinozal.in - скачать новинки фильмы хорошего качества[color=color_url - .
Или просто смотреть онлайн.
Ка на меня я болше люблю с женой смотреть http://kinozal.in/erotika - erotik filim[color=color_url - . Вообщем кому что лучще. Но проблемма в том что у меня слабый интернет.

Так вот пожалуйста помогите мне найти саты где возможно смотреть кино или скачать даже с медленным интернетом.
Ссылки пожалуйста отправляйте в личное сообщения, на емаил unsomimmusemm@gmail.com или icq 9448995

6 Imingenep  
0
согласна

5 SokIrocksof  
0
+5

4 Glanciava  
0
поддерживаю +1

3 Waraepize  
0
:-)

2 TauttyTut  
0
+1 :-)

1 KKoro  
0
У меня решето Сундарама отсеивает простые числа из 317 500 000 за 4 сек, что в 5 раз быстрее Аткина-Бернстейна.
Правда, реализовано это решето иначе.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Категории раздела
Проект GIMPS [3]
Немного истории... [5]
Присоединиться к проекту [4]
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Copyright MyCorp © 2024
    Бесплатный конструктор сайтов - uCoz