题目原文
题目描述
本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。
输入两个正整数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
1 10
输出样例1
Sum of ( 2 3 5 7 ) = 17
AC代码
#include <stdio.h>
int prime(int p)
{
if (p == 2)
return 1;
if (p % 2 == 0 || p < 2)
return 0;
for (int i = 3; i * i <= p; i += 2)
if (p % i == 0)
return 0;
return 1;
}
int prime_sum(int m, int n)
{
int sum = 0;
for (int i = m; i <= n; i++)
if (prime(i))
sum += i;
return sum;
}
int main()
{
int m, n;
scanf("%d%d", &m, &n);
printf("Sum of (");
for (int i = m; i <= n; i++)
if (prime(i))
printf(" %d", i);
printf(" ) = %d", prime_sum(m, n));
return 0;
}