1 solutions

  • 0
    @ 2026-3-8 16:27:03
    #include<bits/stdc++.h>
    using namespace std;
    const int N=25;
    int s[N];
    bool check(int x)
    {
    	if(x<2) return false;
    	for(int i=2;i<=x/i;i++)
    	{
    		if(x%i==0) return false;
    	} 
    	return true;
    }
    int main()
    {
    	int n,k;
    	cin>>n>>k;
    	int ans=0;
    	for(int i=0;i<n;i++) cin>>s[i];
    	for(int i=0;i<1<<n;i++)
    	{
    		bitset<32> a(i);
    		if(a.count()==k)
    		{
    			int sum=0;
    			for(int j=n-1;j>=0;j--)
    			{
    				if(a[j]==1)
    				{
    					sum+=s[j];
    				}
    			}
    			if(check(sum)) ans++;
    		}
    	} 
    	cout<<ans;
    	return 0;
    }
    
    
    • 1

    Information

    ID
    2755
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    3
    Tags
    # Submissions
    8
    Accepted
    5
    Uploaded By