求救求救SOS
查看原帖
求救求救SOS
1050716
Machuanqi99楼主2024/8/15 15:31

16分代码:

#include<iostream>
using namespace std;
const int maxn = 30;
int a[maxn];
bool vis[maxn];
int s = 0, ans = 0;
int n, k;

bool isOk(int l){
	if(l == 1) return false;
	if(l == 2) return true;
	for(int i = 2; i*i <= l; i++){
		if(l%i == 0) return false;
	}
	return true;
}

void f(int x, int y){
	if(x == k+1){
		if(isOk(s) == true){
			ans++;
		}
	}else{
		for(int i = y; i <= n; i++){
			if(vis[i] == 0){
				vis[i] = 1;
				s += a[i];
				f(x+1, y+1);
				vis[i] = 0;
				s -= a[i];
			}
		}
	}
}

int main(){
	cin >> n >> k;
	for(int i = 1; i <= n; i++) cin >> a[i];
	f(1, 1);
	cout << ans;
	return 0;
}
2024/8/15 15:31
加载中...