⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 6.cpp

📁 csdn的C语言大赛自己的答案。各位大侠如果有空
💻 CPP
字号:
#include "6.h"


int Count_Prime( int a[] , int n , int k)                //返回质数的个数 
{
    int COUNT = 0;                                       //计量质数                            
    int i = 0;
    int sum;
    
    if(k == 1)                                           //如果只要求一个数是否为质数的情况 
    {
         for( i = 0 ; i < n ; i ++)
         {
              if(if_Prime( a[i]))
                           COUNT++;
                          //计算完成             
              }
       return COUNT;       
         } 
    
    for(i = 0 ;i <= n - k ; i++)                 //从第一个元素开始求 
    {
          sum = a[i];                                                 
          fun( a, sum , i+1 , k-1 , n , COUNT);     //利用递归 
          }//for

    return COUNT;
    }//count_prime

void fun( int a[] ,int &sum , int i ,
               int k , int n , int &COUNT)
{
     if( k > 1 )                   // 如果k>1,继续递归下去 
     {
       for( ; i < n  ;)
       {     
            sum = sum + a[i++] ;
            fun( a , sum , i+1 , k-1 , n ,COUNT) ;
            }//for
     }//if 
               
     if(k == 1)                  //如果k==1,到达出口,比较和是否为质数 
     {    
          k--;                   //k=0,表示已经到达出口 
          for(int j = i ; j < n ; j ++)
         {
           if(if_Prime(sum + a[j]))
                           COUNT ++ ;        //计量质数的个数 
                                    }//for    
          
          
     }//if k=1 
     
     
}//fun


int if_Prime( int m )                                /*返回1,说明m是质数*/
{
    int i = 2;
    if( m == 2)return 1;
    do{
        if(m % i == 0)return 0;
        i ++ ;
        }while( i <= sqrt( m ));
    if( i > sqrt( m ))return 1;
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -