1 条题解

  • 0
    @ 2025-1-7 11:49:14

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    int n,k;
    int a[21],ans;
    bool prime(int x){
    	bool b=1;
    	for(int i=2;i*i<=x;i++){
    		if(x%i==0){
    			b=0;
    		}
    	}
    	return b;
    }
    void dfs(int p,int sum,int c){
    	if(p>k){
    	//	printf("%d ",sum);
    		if(prime(sum)){
    			++ans;
    		}
    		return ;
    	}
    	for(int i=c+1;i<=n;i++){
    		dfs(p+1,sum+a[i],i);
    	}
    }
    int main(){
    	cin>>n>>k;
    	for(int i=1;i<=n;i++)
    		scanf("%d",&a[i]);
    	dfs(1,0,0);cout<<ans;
    }
    
    • 1

    信息

    ID
    1079
    时间
    999ms
    内存
    64MiB
    难度
    (无)
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者