p ←    ##.pco ⍵     ⍝ ⍵-th prime                        ⍝ Prime numbers.
b ←  0 ##.pco ⍵     ⍝ 1 iff ⍵ is not prime
b ←  1 ##.pco ⍵     ⍝ 1 iff ⍵ is prime
n ← ¯1 ##.pco ⍵     ⍝ number of primes less than ⍵
v ←  2 ##.pco ⍵     ⍝ prime factors and exponents
v ←  3 ##.pco ⍵     ⍝ prime factorization of ⍵
p ←  4 ##.pco ⍵     ⍝ next prime larger than ⍵
p ← ¯4 ##.pco ⍵     ⍝ next prime smaller than ⍵
b ← 10 ##.pco ⍵     ⍝ m+b/⍳⍴b are all the primes between m and n, where ⍵≡m,n

From Roger Hui, [pco] "p-colon" models most of the p: function in J.

Technical note:

[pco] uses two large literal values:

        pitab←2 1299721 2750161 4256249 5800139 7368791 8960467 10570849 ...
        p4792←2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 ...

which means that the canonical representation of the function is quite wide:

          ⍴⎕cr'pco'
    102 27335

which may prove challenging for some workspace administration tools.

Examples:

      pco ⎕io               ⍝ the first prime
2
      pco 2 5⍴⍳10           ⍝ the first 10 primes in a 2 by 5 table
 2  3  5  7 11
13 17 19 23 29

      pco 1234567           ⍝ the 1234567-th prime
19394489

      ¯1 pco 19394509       ⍝ the number of primes < 19394509
1234567

      ¯1 pco 97             ⍝ # primes < 97
24
      ¯1 pco 97.5           ⍝ # primes < 97.5
25
      pco 24                ⍝ the 24-th prime
89
      ¯1 pco ¯1+2*31        ⍝ # primes < ¯1+2*31
105097564

      pco 105097564         ⍝ the 105097564-th prime
2147483647

      1 pco 314159          ⍝ is 314159 a prime?
1
      {⍵/⍳⍴⍵} 1 pco ⍳25     ⍝ all the primes less than 25
2 3 5 7 11 13 17 19 23

      0 pco 144 17 49       ⍝ which numbers are not prime?
1 0 1

      3 pco 144             ⍝ prime factorization
2 2 2 2 3 3

      2 pco 144             ⍝ primes and exponents
2 3
4 2
      ⍬ ≡ 3 pco 1           ⍝ the prime factorization of 1 is empty
1
      4 pco 10*1 2 3 4      ⍝ the next prime > 10 100 ...
11 101 1009 10007

      ¯4 pco 10*1 2 3 4     ⍝ the next prime < 10 100 ...
7 97 997 9973

      ⎕←b←10 pco 10 20      ⍝ primes between 10 and 20.
0 1 0 1 0 0 0 1 0 1

      b/10 to 19            ⍝ prime between 10 and 20.
11 13 17 19

See also: factors sieve rats rational

Back to: contents

Back to: Workspaces