A   k-Almost-prime   is a natural number   



n


{\displaystyle n}

   that is the product of   



k


{\displaystyle k}

   (possibly identical) primes.



Example

1-almost-primes,   where   



k
=
1


{\displaystyle k=1}

,   are the prime numbers themselves.

2-almost-primes,   where   



k
=
2


{\displaystyle k=2}

,   are the   semiprimes.



Task

Write a function/method/subroutine/... that generates k-almost primes and use it to create a table here of the first ten members of k-Almost primes for   



1
<=
K
<=
5


{\displaystyle 1<=K<=5}

.



Related tasks

   Semiprime
   Category:Prime Numbers


var kPrime = Fn.new { |n, k|
    var nf = 0
    var i = 2
    while (i <= n) {
        while (n%i == 0) {
            if (nf == k) return false
            nf = nf + 1
            n = (n/i).floor
        }
        i = i + 1
    }
    return nf == k
}
 
var gen = Fn.new { |k, n|
    var r = List.filled(n, 0)
    n = 2
    for (i in 0...r.count) {
        while (!kPrime.call(n, k)) n = n + 1
        r[i] = n
        n = n + 1
    }
    return r
}
 
for (k in 1..5) System.print("%(k) %(gen.call(k, 10))") 