Простые числа, близкие к числам определенного вида
Теперь можем приступить к выполнению составленной программы. Так как функции 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 999953999931 999917 999907 999883 9998631000003 1000033 1000037 10000391000081 1000099 1000117 1000121 1000133 10001517: 9999991, 9999973, 9999971, 9999943,Конечно, для практического применения результаты удобнее отформатировать в виде таблицы. Для этого в текстовом редакторе нужно сделать всего несколько замен. Сначала нужно убрать пробелы, разрывы строк, символы абзацев (кроме последнего) и запятые перед двоеточием. Затем два двоеточия нужно заменить символом абзаца. Этим самым мы разобьем таблицу на строки. После этого достаточно выделить все, что получилось, и преобразовать текст в таблицу, указав в качестве разделителя столбцов двоеточие :. Конечно, это еще не все. Нужно ведь еще расставить пробелы после запятых, написать название таблицы и заголовки столбцов.
