题目描述
输入两个正整数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)

本文详细解析了一道关于求解指定范围内所有素数之和的算法题,通过定义isprime函数判断素数,实现m到n之间素数的累加求和。文章提供了完整的C语言代码示例,并指出了常见的易错点,如正确处理1和2的情况及循环判断条件。
1855

被折叠的 条评论
为什么被折叠?



