34 lines
1009 B
Plaintext
34 lines
1009 B
Plaintext
// Find the first 20 antiprimes.
|
|
|
|
// returns a table of the first goal antiprimes
|
|
antiprimes = function(goal)
|
|
maxNumber = 0
|
|
ndc = [] // table of divisor counts - initially empty
|
|
list = [0] * goal; number = 1; mostFactors = 0
|
|
aCount = 0
|
|
while aCount < goal
|
|
if number > maxNumber then
|
|
// need a bigger table of divisor counts
|
|
maxNumber = maxNumber + 5000
|
|
ndc = [1] * ( maxNumber + 1 )
|
|
ndc[ 0 ] = 0
|
|
for i in range( 2, maxNumber )
|
|
for j in range( i, maxNumber, i )
|
|
ndc[ j ] = ndc[ j ] + 1
|
|
end for
|
|
end for
|
|
end if
|
|
factors = ndc[ number ]
|
|
if factors > mostFactors then
|
|
list[ aCount ] = number
|
|
mostFactors = factors
|
|
aCount = aCount + 1
|
|
end if
|
|
number = number + 1
|
|
end while
|
|
return list
|
|
end function
|
|
|
|
// display the antiprimes
|
|
print antiprimes( 20 ).join( " " )
|