P1036 33分哪错了???
查看原帖
P1036 33分哪错了???
687743
becky0708楼主2024/9/9 20:51

为什么33分 P1036

#include<bits/stdc++.h>

using namespace std;

int n,k,ans=0,a[30];

bool is(int x){
	if(x==0||x==1) return 0;
	for(int i=2;i*i<=n;++i) if(x%i==0) return 0;
	return 1;
}	
int main(){
	cin>>n>>k;
	for(int i=0;i<n;++i) cin>>a[i];
	int u=1<<n;
	for(int s=0;s<u;++s){
		if(__builtin_popcount(s)==k){
			int sum=0;
			for(int i=0;i<n;++i){
				if(s&(1<<i)) sum+=a[n-i-1];
			}
			if(is(sum)) ans++;
		}
	}
	cout<<ans; 
	return 0;
}
2024/9/9 20:51
加载中...