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


(defun start ()
  (loop for k from 1 to 5
    do (format t "k = ~a: ~a~%" k (collect-k-almost-prime k))))
 
(defun collect-k-almost-prime (k &optional (d 2) (lst nil))
  (cond ((= (length lst) 10) (reverse lst))
        ((= (?-primality d) k) (collect-k-almost-prime k (+ d 1) (cons d lst)))
        (t (collect-k-almost-prime k (+ d 1) lst))))
 
(defun ?-primality (n &optional (d 2) (c 0))
  (cond ((> d (isqrt n)) (+ c 1))
        ((zerop (rem n d)) (?-primality (/ n d) d (+ c 1)))
        (t (?-primality n (+ d 1) c))))