RosettaCodeData/Task/Almost-prime/Java/almost-prime.java

28 lines
677 B
Java
Raw Permalink Normal View History

2017-09-23 10:01:46 +02:00
public class AlmostPrime {
public static void main(String[] args) {
2015-11-18 06:14:39 +00:00
for (int k = 1; k <= 5; k++) {
System.out.print("k = " + k + ":");
2017-09-23 10:01:46 +02:00
for (int i = 2, c = 0; c < 10; i++) {
2015-11-18 06:14:39 +00:00
if (kprime(i, k)) {
System.out.print(" " + i);
c++;
}
2017-09-23 10:01:46 +02:00
}
2015-11-18 06:14:39 +00:00
System.out.println("");
}
}
2017-09-23 10:01:46 +02:00
public static boolean kprime(int n, int k) {
2015-11-18 06:14:39 +00:00
int f = 0;
2017-09-23 10:01:46 +02:00
for (int p = 2; f < k && p * p <= n; p++) {
while (n % p == 0) {
n /= p;
f++;
2015-11-18 06:14:39 +00:00
}
2017-09-23 10:01:46 +02:00
}
return f + ((n > 1) ? 1 : 0) == k;
2015-11-18 06:14:39 +00:00
}
}