看看哪里错了吧(67分)
查看原帖
看看哪里错了吧(67分)
870011
Soh_paramEEMS楼主2022/11/12 15:51
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll n,m,b[10001],c[10001],t,tt,d[10001];
bool a[10001];
bool zs(ll x)
{
	for(int i=2;i*i<=x;i++)
	if(x%i==0)return false;
	return true;
}
void f(ll e) 
{
    if(e>m)
	{
		ll s=0; 
        for(int i=1;i<=m;i++)s+=c[b[i]];
        tt++,d[tt]=s;
		return;
    }
    for(int i=b[e-1]+1;i<=n;i++)
	{
        if(a[i]==false)
		{
            b[e]=i;
            a[i]=true;
            f(e+1);
            a[i]=false;
        }
    }
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=1001;i++)a[i]=false;
    for(int i=1;i<=n;i++)cin>>c[i];
    f(1);
    d[tt+1]=-11;
    for(int i=1;i<=tt;i++)if(d[i]!=d[i+1])if(zs(d[i])==true)t++;
    cout<<t;
    return 0;
}
2022/11/12 15:51
加载中...