📄 6.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 + -