2 条题解

  • 0
    @ 2024-11-24 16:38:46
    #include<bits/stdc++.h>
    using namespace std;
    const int N = 1e5 + 10;
    const int INF = 0x3f3f3f3f;
    int a[N],n,m;
    int ans =0;
    bool flag(int sum)
    {
    	if (sum < 2)
    	{
    		return false;
    	}
    	for(int i = 2;i*i <= sum;i++)
    		if(sum % i ==0)
    			return false;
    	return true;
    }
    void f(int last,int step, int sum)
    {
    	if(step == m)
    	{
    		if(flag(sum))
    			ans++;
    		return;
    	}
    	for(int i = last;i <= n;i++)
    		f(i + 1,step + 1,sum + a[i]);
    } 
    int main()
    {
    	cin >> n >> m;
    	for(int i = 1;i <= n;i++)
    		cin >> a[i];
    	f(1,0,0);
    	cout << ans << endl;
    	return 0;
    }
    
    

    信息

    ID
    657
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    441
    已通过
    111
    上传者