1 条题解

  • 0
    @ 2025-4-7 21:38:07

    C++ :

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<cctype>
    #include<iomanip>
    #include<cstdlib>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    int n,k,x[1001],ans=0;
    bool prime(int a){
    	if(a==0||a==1) return 0;
    	if(a==2) return 1;
    	if(a%2==0) return 0;
    	for(int i=3;i<=sqrt(a);i+=2) if(a%i==0) return 0;
    	return 1;
    }
    void dnf(int e,int tot,int k1){
    	if(e==k) {
    		if(prime(tot)) ans++;
    		return;
    	}
    	for(int i=k1;i<n-k+e+2;i++) {
    		dnf(e+1,tot+x[i],i+1);
    	}
    }
    int main(){
    	int i,j;
    	//freopen("num.in","r",stdin);
    	//freopen("num.out","w",stdout);
    	scanf("%d%d",&n,&k);
    	for(i=1;i<=n;i++) scanf("%d",&x[i]);
    	dnf(0,0,1);
    	printf("%d\n",ans);
    	return 0;
    }
    
    • 1

    信息

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