在一组数中找到素数,把它们计数,或者求和,还是打印,一直是一个比较火的话题,一定要完全搞定它。(对我这个小白而言)

拿到一道有关素数的题,总是感觉心理比较慌,所以就以题入手吧;

/////////////////////////////////////////////////////////////////////////////////

6-6 使用函数求素数和 (10 分)

本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。

素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。

函数接口定义:

int prime( int p );
int PrimeSum( int m, int n );

其中函数​​prime​​​当用户传入参数​​p​​​为素数时返回1,否则返回0;函数​​PrimeSum​​​返回区间[​​m​​​, ​​n​​​]内所有素数的和。题目保证用户传入的参数​​m​​​≤​​n​​。

还是先以函数入手,较为温和一点,考虑的细节也更少一点,因为主函数已经被写好了;

第一个函数:

int prime( int p )//判断是否为素数的函数

{

int i=0;

int flag=1;

if(p<=1)

return 0;

for(i=2;i<p;i++)

{

if(p%i==0)

flag=0;

}

return flag;}

//okay  判断出是否为素数

//第二个函数是计算出这些素数的和

int PrimeSum( int m, int n )//给出区间

{

int i=0,j=0;

int sum=0;

int re=0;

for(i=m;i<=n;i++)

{

re=prime();

if(1==re)

sum+=i;

}

return sum;}

//由此素数的题还可以变出许多花样,比如让你把这些素数输出,然后有一定格式,就用我高中物理老师一句话共勉:以不变应万变。殊途同归,加油。