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

Простые числа, близкие к числам определенного вида

Теперь можем приступить к выполнению составленной программы. Так как функции 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,

Конечно, для практического применения результаты удобнее отформатировать в виде таблицы. Для этого в текстовом редакторе нужно сделать всего несколько замен. Сначала нужно убрать пробелы, разрывы строк, символы абзацев (кроме последнего) и запятые перед двоеточием. Затем два двоеточия нужно заменить символом абзаца. Этим самым мы разобьем таблицу на строки. После этого достаточно выделить все, что получилось, и преобразовать текст в таблицу, указав в качестве разделителя столбцов двоеточие :. Конечно, это еще не все. Нужно ведь еще расставить пробелы после запятых, написать название таблицы и заголовки столбцов.

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