Ormiston pairs: Difference between revisions

Content added Content deleted
(→‎{{header|jq}}: def primeSieve:)
Line 828: Line 828:
'''Preliminaries'''
'''Preliminaries'''
<syntaxhighlight lang=jq>
<syntaxhighlight lang=jq>
# Input: a positive integer
# Assuming . > 2, return an array, $a, of length .+1 such that
# $a[$i] is $i if $i is prime, and null otherwise.
# Output: an array, $a, of length .+1 such that
# $a[$i] is $i if $i is prime, and false otherwise.
def primeSieve:
def primeSieve:
# erase(i) sets .[i*j] to false for integral j > 1
# erase(i) sets .[i*j] to false for integral j > 1
def erase(i):
def erase($i):
if .[i] then
if .[$i] then
reduce range(2; (1 + length) / i) as $j (.; .[i * $j] = null)
reduce (range(2*$i; length; $i)) as $j (.; .[$j] = false)
else .
else .
end;
end;
Line 892: Line 893:
3722 Ormiston pairs before 10000000
3722 Ormiston pairs before 10000000
</pre>
</pre>

=={{header|Pascal}}==
=={{header|Pascal}}==
==={{header|Free Pascal}}===
==={{header|Free Pascal}}===