题目描述:
输入两个正整数m和n(m
输入
m n
输出
素数和
样例输入
2 3
样例输出
5
解题思路:
本题要求定义并调用isprime(x)。可能有部分朋友上来直接写isPrime函数有点小难度,那么我采用的方法是先"一气呵成"两个for循环,判断如果是素数,累加就行,不是素数跳出循环。然后把里面的实现代码封装成isprime(x)函数即可!
对于算法如果不是太理解,可以看看下面这篇文章,都是相同的算法,讲解的比较详细!
http://www.dotcpp.com/blog/56754.html
注意事项:
下面两种都可以成功通过见面测试! 感兴趣的可以参考下!
参考代码(直接法):#include
int main()
{
int m,n,sum=0;
scanf("%d%d",&m,&n);
for(int i=m; i<=n; i++)
{
for(int j=2; j<=i; j++) //j是被除数,j取2~i之间,如果都不能整除,则i是素数
{
if(i%j==0&&i!=j)
break; //不是素数,跳出
else if(i%j==0&&i==j)
sum+=i; //是素数,累加
}
}
printf("%d",sum);
}
方法二:(isPrime函数)#include
int isPrime(int m,int n); //声明isPrime()函数
int main()
{
int m,n;
scanf("%d%d",&m,&n);
printf("%d",isPrime(m,n));
}
int isPrime(int m,int n) //实现isPrime()函数
{
int sum=0;
for(int i=m; i<=n; i++)
{
for(int j=2; j<=i; j++)
{
if(i%j==0&&i!=j)
break;
if(i%j==0&&i==j)
{
sum+=i;
}
}
}
return sum;
}