import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int k = scan.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = scan.nextInt();
}
List<List<Integer>> subsets = new ArrayList<>();
generateSubsets(nums, k, 0, new ArrayList<>(), subsets);
for (List<Integer> subset : subsets) {
if (isPrime(sum(subset))) {
System.out.print(subset + " = ");
for (int i = 0; i < subset.size(); i++) {
System.out.print(subset.get(i));
if (i != subset.size() - 1) {
System.out.print(" + ");
}
}
System.out.println();
}
}
}
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
public static int sum(List<Integer> subset) {
int sum = 0;
for (int num : subset) {
sum += num;
}
return sum;
}
public static void generateSubsets(int[] nums, int k, int index, List<Integer> current, List<List<Integer>> subsets) {
if (current.size() == k) {
subsets.add(new ArrayList<>(current));
return;
}
for (int i = index; i < nums.length; i++) {
current.add(nums[i]);
generateSubsets(nums, k, i + 1, current, subsets);
current.remove(current.size() - 1);
}
}
}
每日代码
最新推荐文章于 2024-07-14 14:59:27 发布