Простые числа, близкие к числам определенного вида
Теперь можем приступить к выполнению составленной программы. Так как функции PreviousPrime и NextPrime содержатся в пакете теории чисел, в первую очередь нужно загрузить этот пакет.
<
<
NumberTheory`NumberTheoryFunctions`
Затем нужно загрузить (и проверить) определения наших функций PreviouskPrimes и NextkPrimes. Сначала загрузим (и протестируем) PreviouskPrimes.
PreviouskPrimes[n_Integer ? (#
>
100
& ), k_Integer ? Positive] :
=
Block[{p
=
PreviousPrime[n], i
=
1
},
While[i
<
=
k, {Print[p,
","
], p
=
PreviousPrime[p]
/
+
+
i}]
]
PreviouskPrimes[
1000.3
]
997
,
991
,
983
,
Видим, что функция PreviouskPrimes работает правильно. Значит, теперь можем сделать то же самое и для функции NextkPrimes.
NextkPrimes[n_Integer ? (#
>
100
& ), k_Integer ? Positive] :
=
Block[{p
=
NextPrime[n], i
=
1
},
While[i
<
=
k, {Print[p,
","
], p
=
NextPrime[p],
+
+
i}]
]
NextkPrimes[
1000.3
]
1009
,
1013
,
1019
,
Теперь можем ввести программу и выполнить ее. Вот что у нас получится (конец обрезан).
6
:
999983
999979
999961
999959
999953
999931
999917
999907
999883
999863
1000003
1000033
1000037
1000039
1000081
1000099
1000117
1000121
1000133
1000151
7
:
9999991
,
9999973
,
9999971
,
9999943
,
Конечно, для практического применения результаты удобнее отформатировать в виде таблицы. Для этого в текстовом редакторе нужно сделать всего несколько замен. Сначала нужно убрать пробелы, разрывы строк, символы абзацев (кроме последнего) и запятые перед двоеточием. Затем два двоеточия нужно заменить символом абзаца. Этим самым мы разобьем таблицу на строки. После этого достаточно выделить все, что получилось, и преобразовать текст в таблицу, указав в качестве разделителя столбцов двоеточие :. Конечно, это еще не все. Нужно ведь еще расставить пробелы после запятых, написать название таблицы и заголовки столбцов.