33分求助!!!
查看原帖
33分求助!!!
1019696
jiangyouning楼主2024/7/22 19:17

代码:

#include<bits/stdc++.h>
using namespace std;
int a[10000],n,k,b[10000],sum;
bool c[20000001];
void dfs(int t,int ans){
	if(t==k+1){
		int ok=0;
		for(int i=2;i*i<ans;i++){
			if(ans%i==0){
				ok=1;
				break;
			}
		}
		if(ok==0 && c[ans]==0 && ans!=1){
			sum++;
			c[ans]=1;
		}
		return;
	}
	for(int i=1;i<=n;i++){
		if(b[i]==0){
			b[i]=1;
			dfs(t+1,ans+a[i]);
			b[i]=0;
		}
	}
	return;
}
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	dfs(1,0);
	cout<<sum;
	return 0;
}
2024/7/22 19:17
加载中...