Иллюстрированный самоучитель по Mathematica 5

Тест на простоту. Функция PrimeQ.

Пример 5.1.
Составим таблицу нескольких первых чисел Ферма с указанием их простоты. Вот что надо ввести в блокнот.

Иллюстрированный самоучитель по Mathematica 5 › Арифметика: простые числа › Тест на простоту. Функция PrimeQ.

Все это удобнее свести в таблицу.

Видите, как ошибся Ферма! Это потому, что он не использовал предикат PrimeQ.

Пример 5.2.
Составим список всех натуральных <<55000, для которых число Мерсенна Мn является простым. Для этого можно ввести в блокнот следующую программу.

M[n_] = 2 ^ n - 1;
Do[If[PrimeQ[M[n]], Print[n, ","}], {n, 5000}]

Здесь вначале определена функция А/", а затем записан цикл, в котором проверяется простота ее значений. Будут выведены следующие числа:

2, 3, 5, 7, 13, 17, 19, 31, 61, 89, 107, 127, 521, 607, 1279, 2203, 2281, 3217, 4253, 4423

Конечно, есть гораздо лучший метод проверки чисел Мерсенна на простоту.

Пример 5.3 (задача А. Рихнера).
Составим список всех натуральных /?<5000, для которых число 2" + 3 является простым. Для этого можно ввести в блокнот следующую программу.

M[n_] = 2 ^ n + 3;
Do[If[PrimeQ[M[n]], Print[n, ","]], {n, 5000}]

Вначале определена функция, вычисляющая число, а затем записан цикл, в котором проверяется простота ее значений. Будут выведены следующие числа:

1, 2, 3,
4, 6, 7, 12, 15, 16, 18, 28, 30, 55, 67, 84,
228, 390, 784, 1110, 1704, 2008, 2139, 2191,
2367, 2370, 4002, 4060, 4062, 4552

Пример 5.4.
Составим список всех натуральных <<5000, для которых число 2-2n + 1 является простым. Для этого можно ввести в блокнот следующую программу.

M[n_] = 2 * 2 ^ n + 1;
Do[If[PrimeQ[M[n]], Print[n, ","]], {n, 5000}]

Здесь вначале определена функция, вычисляющая число, а затем записан цикл, в котором проверяется простота ее значений. Будут выведены следующие числа:

1, 3,
7, 15

Результат можно было угадать. Ведь числа вида 2 * 2n +1 могут быть простыми только тогда, когда n+1 имеет вид 2m, иными словами, только при n= 2m -1.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.