// 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( " " )