Тест на простоту. Функция PrimeQ.
Пример 5.1.
Составим таблицу нескольких первых чисел Ферма с указанием их простоты. Вот что надо ввести в блокнот.
Все это удобнее свести в таблицу.
Видите, как ошибся Ферма! Это потому, что он не использовал предикат 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.