蒟蒻求助(RE*1)
  • 板块学术版
  • 楼主封禁用户
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/7/30 23:38
  • 上次更新2024/7/31 09:16:39
查看原帖
蒟蒻求助(RE*1)
1392847
封禁用户楼主2024/7/30 23:38

TO,记录

题目

代码有一点点长(暴力)

#include<bits/stdc++.h>
using namespace std;
int a[25];
int s,x,n,k;
bool ck_prime(int n)
{
    if(n<2) 
	   return false;
    for(int i=2;i<=sqrt(n);i++)
        if(n%i==0) 
	      return false;
    return true;
     
}
void sum()
{
    cin>>n>>k;
    for (int i=1;i<=n;i++)
    {
    	cin>>a[i];
     	x+=a[i];
    }
}
void jisuan()
{
    if(k==19 || k==n-1) 
	{ 
	    for(int i=1;i<=n;i++) 
	       	if(ck_prime(x-a[i])) 
		      	s++;
		return;
	}
    if(k==20|| n==k) 
	{
	   	if(ck_prime(x)) 
	       	s++;
		return;
	}
    if(k==1)  
    {
       	for(int i1=1; i1<=n; i1++) 
           	if(ck_prime(a[i1])) 
		      	s++;
		return ;
    }
    if(k==2)  
    {
       	for(int i1=1; i1<=n-1; i1++) 
          	for(int i2=i1+1; i2<=n; i2++) 
              	if(ck_prime(a[i1]+a[i2])) 
		        	s++;
        return ;
    }
    if(k==3)  
    {
      	for(int i1=1; i1<=n-2; i1++) 
       		for(int i2=i1+1;i2<=n-1;i2++) 
        		for(int i3=i2+1;i3<=n;i3++) 
         			if(ck_prime(a[i1]+a[i2]+a[i3]))
					 	s++;
        return;
   	}
    if(k==4)  
    {
       for(int i1=1; i1<=n-3; i1++) 
         	for(int i2=i1+1; i2<=n-2; i1++) 
         		for(int i3=i2+1; i3<=n-1; i2++) 
          			for(int i4=i3+1; i4<=n; i4++)
          				if(ck_prime(a[i1]+a[i2]+a[i3]+a[i4]))
							s++;
        return ;
    }
    if(k==5)  
    {
       	for(int i1=1; i1<=n-4; i1++) 
        	for(int i2=i1+1;i2<=n-3;i2++) 
         		for(int i3=i2+1;i2<=n-2;i2++) 
          			for(int i4=i3+1;i3<=n-1;i3++)
           				for(int i5=i4+1;i4<=n;i4++)
          					if(ck_prime(a[i1]+a[i2]+a[i3]+a[i4]+a[i5]))
							   s++;
        return ;
    }
    if(k==6)
    {
        for(int i1=1;i1<=n-5;i1++) 
         	for(int i2=i1+1;i2<=n-4;i2++) 
          		for(int i3=i2+1;i3<=n-3;i3++)
           			for(int i4=i3+1;i4<=n-2;i4++)
            			for(int i5=i4+1;i5<=n-1;i5++)
            				for(int i6=i5+1; i6<=n; i6++)
          						if(ck_prime(a[i1]+a[i2]+a[i3]+a[i4]+a[i5]+a[i6]))
								  	s++;
        return ;
    }
    if(k==7)
    {
       for(int i1=1;i1<=n-6;i1++) 
         	for(int i2=i1+1;i2<=n-5;i2++) 
          		for(int i3=i2+1;i3<=n-4;i3++)
           			for(int i4=i3+1;i4<=n-3;i4++)
            			for(int i5=i4+1;i5<=n-2;i5++)
            				for(int i6=i5+1; i6<=n-1; i6++)
            				    for(int i7=i6+1; i7<=n; i7++)
          							if(ck_prime(a[i1]+a[i2]+a[i3]+a[i4]+a[i5]+a[i6]+a[i7]))
								  		s++;
		return ;
    }
    if(k==8)  
    {
       	for(int i1=1;i1<=n-7;i1++) 
        	for(int i2=i1+1;i2<=n-6;i2++) 
          		for(int i3=i2+1;i3<=n-5;i3++)
           			for(int i4=i3+1;i4<=n-4;i4++)
            			for(int i5=i4+1;i5<=n-3;i5++)
            				for(int i6=i5+1; i6<=n-2; i6++)
            				    for(int i7=i6+1; i7<=n-1; i7++)
            				        for(int i8=i7+1; i8<=n; i8++)
          							if(ck_prime(a[i1]+a[i2]+a[i3]+a[i4]+a[i5]+a[i6]+a[i7]+a[i8]))
								  		s++;
		return ;
    }
    if(k==9)  
    {
       	for(int i1=1;i1<=n-8;i1++) 
        	for(int i2=i1+1;i2<=n-7;i2++) 
          		for(int i3=i2+1;i3<=n-6;i3++)
           			for(int i4=i3+1;i4<=n-5;i4++)
            			for(int i5=i4+1;i5<=n-4;i5++)
            				for(int i6=i5+1; i6<=n-3; i6++)
            				    for(int i7=i6+1; i7<=n-2; i7++)
            				        for(int i8=i7+1; i8<=n-1; i8++)
            				        	for(int i9=i8+1; i9<=n; i9++)
          									if(ck_prime(a[i1]+a[i2]+a[i3]+a[i4]+a[i5]+a[i6]+a[i7]+a[i8]+a[i9]))
								  				s++;
		return ;
    }
    if(k==10)  
    {
       	for(int i1=1;i1<=n-9;i1++) 
        	for(int i2=i1+1;i2<=n-8;i2++) 
          		for(int i3=i2+1;i3<=n-7;i3++)
           			for(int i4=i3+1;i4<=n-6;i4++)
            			for(int i5=i4+1;i5<=n-5;i5++)
            				for(int i6=i5+1; i6<=n-4; i6++)
            				    for(int i7=i6+1; i7<=n-3; i7++)
            				        for(int i8=i7+1; i8<=n-2; i8++)
            				        	for(int i9=i8+1; i9<=n-1; i9++)
            				        	    for(int i10=i9+1; i10<=n; i10++)
          										if(ck_prime(a[i1]+a[i2]+a[i3]+a[i4]+a[i5]+a[i6]+a[i7]+a[i8]+a[i10]))
								  					s++;
		return ;
    }
    if(k==11)  
    {
       	for(int i1=1;i1<=n-8;i1++) 
        	for(int i2=i1+1;i2<=n-7;i2++) 
          		for(int i3=i2+1;i3<=n-6;i3++)
           			for(int i4=i3+1;i4<=n-5;i4++)
            			for(int i5=i4+1;i5<=n-4;i5++)
            				for(int i6=i5+1; i6<=n-3; i6++)
            				    for(int i7=i6+1; i7<=n-2; i7++)
            				        for(int i8=i7+1; i8<=n-1; i8++)
            				        	for(int i9=i8+1; i9<=n; i9++)
          									if(ck_prime(x-(a[i1]+a[i2]+a[i3]+a[i4]+a[i5]+a[i6]+a[i7]+a[i8]+a[i9])))
								  				s++;
		return ;
	}
	if(k==12)  
    {
       	for(int i1=1;i1<=n-7;i1++) 
        	for(int i2=i1+1;i2<=n-6;i2++) 
          		for(int i3=i2+1;i3<=n-5;i3++)
           			for(int i4=i3+1;i4<=n-4;i4++)
            			for(int i5=i4+1;i5<=n-3;i5++)
            				for(int i6=i5+1; i6<=n-2; i6++)
            				    for(int i7=i6+1; i7<=n-1; i7++)
            				        for(int i8=i7+1; i8<=n; i8++)
          								if(ck_prime(x-(a[i1]+a[i2]+a[i3]+a[i4]+a[i5]+a[i6]+a[i7]+a[i8])))
								  			s++;
		return ;
    }
    if(k==13)
    {
       for(int i1=1;i1<=n-6;i1++) 
         	for(int i2=i1+1;i2<=n-5;i2++) 
          		for(int i3=i2+1;i3<=n-4;i3++)
           			for(int i4=i3+1;i4<=n-3;i4++)
            			for(int i5=i4+1;i5<=n-2;i5++)
            				for(int i6=i5+1; i6<=n-1; i6++)
            				    for(int i7=i6+1; i7<=n; i7++)
          							if(ck_prime(x-(a[i1]+a[i2]+a[i3]+a[i4]+a[i5]+a[i6]+a[i7])))
								  		s++;
		return ;
    }
    if(k==14)
    {
        for(int i1=1;i1<=n-5;i1++) 
         	for(int i2=i1+1;i2<=n-4;i2++) 
          		for(int i3=i2+1;i3<=n-3;i3++)
           			for(int i4=i3+1;i4<=n-2;i4++)
            			for(int i5=i4+1;i5<=n-1;i5++)
            				for(int i6=i5+1; i6<=n; i6++)
          						if(ck_prime(x-(a[i1]+a[i2]+a[i3]+a[i4]+a[i5]+a[i6])))
								  	s++;
        return ;
    }
    if(k==15)  
    {
       	for(int i1=1; i1<=n-4; i1++) 
        	for(int i2=i1+1;i2<=n-3;i2++) 
         		for(int i3=i2+1;i2<=n-2;i3++) 
          			for(int i4=i3+1;i3<=n-1;i4++)
           				for(int i5=i4+1;i4<=n;i4++)
          					if(ck_prime(x-(a[i1]+a[i2]+a[i3]+a[i4]+a[i5])))
							   s++;
        return ;
    }
    if(k==16)  
    {
       for(int i1=1; i1<=n-3; i1++) 
         	for(int i2=i1+1; i2<=n-2; i2++) 
         		for(int i3=i2+1; i3<=n-1; i3++) 
          			for(int i4=i3+1; i4<=n; i4++)
          				if(ck_prime(x-(a[i1]+a[i2]+a[i3]+a[i4])))
							s++;
        return ;
    }
	if(k==17)  
    {
      	for(int i1=1; i1<=n-2; i1++) 
       		for(int i2=i1+1;i2<=n-1;i2++) 
        		for(int i3=i2+1;i3<=n;i3++) 
         			if(ck_prime(x-(a[i1]+a[i2]+a[i3])))
					 	s++;
        return;
   	}   
    if(k==18)  
    {
       	for(int i1=1; i1<=n-1; i1++) 
          	for(int i2=i1+1; i2<=n; i2++) 
              	if(ck_prime(x-(a[i1]+a[i2])))
		        	s++;
        return ;
    }
    
}
int main()
{
   sum();
   jisuan();
   cout<<s;
}
2024/7/30 23:38
加载中...