AlmostPrimes:=proc(k, numvalues::posint:=10) local aprimes, i, intfactors; aprimes := Array([]); i := 0; do i := i + 1; intfactors := ifactors(i)[2]; intfactors := [seq(seq(intfactors[i][1], j=1..intfactors[i][2]),i = 1..numelems(intfactors))]; if numelems(intfactors) = k then ArrayTools:-Append(aprimes,i); end if; until numelems(aprimes) = 10: aprimes; end proc: ;