33分求助!
查看原帖
33分求助!
437628
凤南天楼主2021/9/18 11:19
#include<bits/stdc++.h>
using namespace std;
int x[21],n,k,sum=0,y[21]={0};
bool a[21];
void dfs(int ans,int i){
    if(i==k){
        for(int j=2;j<=ans/2;j++){
        	if(ans%j==0){
        		return;
			}
		}
		for(int j=0;j<sum;j++){
			if(ans==y[j]){
				return;
			}
		}
		y[sum]=ans;
		sum++;
        return;
    }
    for(int j=0;j<n;j++){
        if(a[j]==false){
            a[j]=true;
            dfs(ans+x[j],i+1);
            a[j]=false;
        }
    }
}
int main(){
    cin>>n>>k;
    for(int i=0;i<n;i++){
        cin>>x[i];
        a[i]=false;
    }
    dfs(0,0);
    cout<<sum;
}
2021/9/18 11:19
加载中...