在一组数中找到素数,把它们计数,或者求和,还是打印,一直是一个比较火的话题,一定要完全搞定它。(对我这个小白而言)
拿到一道有关素数的题,总是感觉心理比较慌,所以就以题入手吧;
/////////////////////////////////////////////////////////////////////////////////
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;}
//由此素数的题还可以变出许多花样,比如让你把这些素数输出,然后有一定格式,就用我高中物理老师一句话共勉:以不变应万变。殊途同归,加油。