这个好像是有重复的,但我不知道为什么,不知道为啥错
查看原帖
这个好像是有重复的,但我不知道为什么,不知道为啥错
475067
go_at楼主2024/7/31 21:36
#include<iostream>
#include<cmath>
using namespace std;
int n,m,a[21],ans=0;
bool judge_prime(int x){
	if(x==1)return false;
	if(x==2)return true;
	for(int i=2;i<=sqrt(x);i++)
		if(x%i==0)return false;
	return true;
}
void dfs(int sum,int t,int starti){

	if(t==m){
		if(judge_prime(sum)==true)ans++;
		return ;
	}
	for(int i=starti;i<n;i++){
		dfs(sum+a[i],t+1,i+1);
		dfs(sum,t,i+1);
	}
	return ;
}
int main(){
	
	cin>>n>>m;
	for(int i=0;i<n;i++)cin>>a[i];
	dfs(0,0,0);
	cout<<ans;
	return 0;
}
2024/7/31 21:36
加载中...