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


class Kth_Prime {
  function : native : kPrime(n : Int, k : Int) ~ Bool {
    f := 0;
    for (p := 2; f < k & p*p <= n; p+=1;) {
      while (0 = n % p) {
        n /= p; f+=1;
      };
    };
 
    return f + ((n > 1) ? 1 : 0) = k;
  }
 
  function : Main(args : String[]) ~ Nil {
    for (k := 1; k <= 5; k+=1;) {
      "k = {$k}:"->Print();
 
      c := 0;
      for (i := 2; c < 10; i+=1;) {
        if (kPrime(i, k)) {
          " {$i}"->Print();
          c+=1;
        };
      };
      '\n'->Print();
    };
  }
}