func is_curzon(n, k) { powmod(k, n, k*n + 1).is_congruent(-1, k*n + 1) && (n > 0) } for k in (2 .. 10 `by` 2) { say "\nFirst 50 Curzon numbers using a base of #{k}:" say 50.by {|n| is_curzon(n, k) }.join(' ') say ("1000th term: ", 1000.th {|n| is_curzon(n,k) }) }