0分求助
查看原帖
0分求助
490978
小超手123楼主2021/7/25 12:31
#include<bits/stdc++.h>
using namespace std;
int m,n,ans=0;
int a[30],b[30];
int f(int x){
	if(x==0||x==1)return 0;
	for(int i=2;i*i<=x;i++)if(x%i==0)return 0;
	return 1;
}
void dfs(int k ,int he){
	if(k>n&&f(he)){
		ans++;
		return;
	}
	for(int i=1;i<=m;i++){
		if(a[i]>=b[k-1]){
			b[k]=a[i];
			dfs(k+1,he+a[i]);
			
		}
	}
}
int main(){
	cin>>m>>n;
	for(int i=1;i<=m;i++)cin>>a[i];
	dfs(1,0);
	cout<<ans;
	return 0;
}
2021/7/25 12:31
加载中...