Простые Числа | p: 0 _ _ | Простые Числа |
Результатом p: i является i-тое простое число.
Например:p: 0 2 p: i. 15 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 Обратная функция к p: есть количество простых чисел, меньших некоторого заданного числа (часто обозначается как π(n) ): pi=: p:^:_1 pi i. 15 0 0 0 1 2 2 3 3 4 4 4 4 5 5 6 (] , pi ,: p:@pi) i.15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 0 0 1 2 2 3 3 4 4 4 4 5 5 6 2 2 2 3 5 5 7 7 11 11 11 11 13 13 17 y=: (2^31)-1 ]a=: pi y 105097564 ]b=: p: a 2147483647 b=y 1 |
_4 p: y простое число, предшествующее y
; эквивалентно _1 p: y эквивалентно p:^:_1 y : количество простых, меньших y . 0 p: y эквивалентно -.1 p: y . 1 p: y равно 1 тогда и только тогда, когда y простое. 2 p: y эквивалентно __ q: y , дает 2-х строчную таблицу множителей и их степеней в разложении y на простые множители. 3 p: y эквивалентно q: y , список простых множителей y , произведение которых равно y . 4 p: y — простое число, следующее
за y ; эквивалентно
5 p: y вычисляет фи-функцию Эйлера (или "тотиенту", Euler’s totient function) от аргумента y : количество неотрицательных целых меньших y и, при этом, относительно к нему простых, тоесть сумму +/1=y+.i.y . На данный момент, аргументы, большие 2^31, проверяются на простоту стохастическим алгоритмом Миллера-Рабина (Miller-Rabin). |
4 p: 20 23 4&p:^:(i.8) 20 20 23 29 31 37 41 43 47 _4 p: 50 47 _4&p:^:(i.8) 50 50 47 43 41 37 31 29 23 ] y=: !14x 87178291200 ] c=: _4 4 p:"0 y 87178291199 87178291219 1 p: ({.c)+i.1--/c 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 p: _1+2^67x 0 m=: 366384x * */ p: i.9x 1 p: 6171054912832631x + m * i.25 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 p: y 2 3 5 7 11 13 11 5 2 2 1 1 'p e'=: 2 p: y */p^e 87178291200 y 87178291200 3 p: y 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 5 5 7 7 11 13 */ 3 p: y 87178291200 y 87178291200 e#p 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 5 5 7 7 11 13 5 p: y 16721510400 */(p-1)*p^e-1 16721510400 (- ~:)&.q: y 16721510400