任务描述
本关任务:本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。 输入两个正整数 m 和 n(1≤m≤n≤500),求 m 和 n 之间的素数和。 素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。
要求定义并调用函数prime(p)判断 p 是否为素数,当p为素数时返回1,否则返回0。定义并调用函数prime_sum(m,n)
,该函数返回区间[m,n]
内所有素数的和。
编程要求
根据提示,在右侧编辑器补充代码,使用函数求素数和。
测试说明
输入说明: 两个正整数 m 和 n(1≤m≤n≤500)
输出说明: 见下面的测试用例
平台会对你编写的代码进行测试:
测试输入: 1 10
预期输出: Sum of ( 2 3 5 7 ) = 17
#include <stdio.h>
#include <math.h>
int prime(int p);
int PrimeSum(int m, int n);
int main()
{
int m, n, p;
scanf("%d %d", &m, &n);
printf("Sum of ( ");
for (p = m; p <= n; p++)
{
if (prime(p) != 0)
printf("%d ", p);
}
printf(") = %d\n", PrimeSum(m, n));
return 0;
}
/* 你的代码将被嵌在这里 */
//=======begin=======
int prime(int p)
{
int a;
a=1;
if(p==1)
{
a=0;
}
for(int i=2;i<=p-1;i++)
{
if(p%i==0)
{
a=0;//非素数
}
}
return a;
}
int PrimeSum(int m, int n)
{
int p,sum=0,mid=0;
for (p = m; p <= n; p++)
{
if(p!=1)
{
mid=p;
}
for(int i=2;i<=p-1;i++)
{
if(p%i==0)
{
mid=0;//非素数
}
}
sum +=mid;
}
return sum;
}
//========end========