Salishan Hamming's Problem:


Given a set of primes {a,b,c,..}, of unknown size and an integer n, output in increasing order and without duplicates all integers of the form

ai * bk * ck * ... <= n

Observe that if r is in the output stream then,

a*r, b*r, c*r, ... <= n

are also in the output stream.

The problem tests a languages's ability to express recursive stream computations and producer/consumer parallelism, and to support dynamic task creation.