// Returns boolean indicating whether n is k-almost prime sub almostPrime(n, k) local divisor, count divisor = 2 while(count < (k + 1) and n <> 1) if not mod(n, divisor) then n = n / divisor count = count + 1 else divisor = divisor + 1 end if wend return count = k end sub // Generates table containing first ten k-almost primes for given k sub kList(k, kTab()) local n, i n = 2^k : i = 1 while(i < 11) if almostPrime(n, k) then kTab(i) = n i = i + 1 end if n = n + 1 wend end sub // Main procedure, displays results from five calls to kList() dim kTab(10) for k = 1 to 5 print "k = ", k, " : "; kList(k, kTab()) for n = 1 to 10 print kTab(n), ", "; next print "..." next