题目描述
输入两个正整数m和n(m<n),求m到n之间(包括m和n)所有素数的和,要求定义并调用函数isprime(x)来判断x是否为素数(素数是除1以外只能被自身整除的自然数)。
输入m n
输出素数和
思路
略
代码
#include<stdio.h>
#include<math.h>
int isprime(int);
int main()
{
int m, n, i, sum = 0;
scanf("%d %d", &m, &n);
for(i = m; i <= n; i++)
{
if(isprime(i))
{
sum += i;
}
}
printf("%d", sum);
return 0;
}
int isprime(int n)
{
int i;
if(n == 1)
return 0;
else if(n == 2)
return 1;
for(i = 2; i <= sqrt(n); i++)
{
if(n % i == 0)
return 0;
}
return 1;
}
易错点
判断是否为质数时,由于循环从2开始,容易忽略1不是质数,2是质数,并且循环结束的条件容易写成i<sqrt(n)