public class AlmostPrime { public static void main(String args[]) { for (int k = 1; k <= 5; k++) { System.out.print("k = " + k + ":"); for (int i = 2, c = 0; c < 10; i++) if (kprime(i, k)) { System.out.print(" " + i); c++; } System.out.println(""); } } public static boolean kprime(int n, int k) { int f = 0; for (int p = 2; f < k && p*p <= n; p++) while (0 == n % p){ n /= p; f++; } return f + ((n > 1)?1:0) == k; } }