合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻
一、题目描述 ⭐️
二、代码(C语言)⭐️
#include <stdio.h>
// 函数声明:判断一个数是否是素数
int prime(int p);
// 函数声明:计算区间 [m, n] 内所有素数的和
int PrimeSum(int m, int n);
int main() {
int m, n, p;
// 输入区间 [m, n]
scanf("%d %d", &m, &n);
// 输出区间内的所有素数
printf("Sum of ( ");
for (p = m; p <= n; p++) {
if (prime(p) != 0) { // 如果 p 是素数
printf("%d ", p); // 输出素数
}
}
printf(") = %d\n", PrimeSum(m, n)); // 输出素数的和
return 0;
}
/* 你的代码将被嵌在这里 */
/* 判断是否是素数的函数 */
int prime(int p) {
if (p <= 1) {
// 素数要大于1
return 0;
}
if (p == 2) {
// 2 是素数
return 1;
}
if (p % 2 == 0) {
// 偶数里除了2,均不是素数
return 0;
}
// 检查从 3 到 sqrt(p) 的奇数
for (int i = 3; i * i <= p; i += 2) {
if (p % i == 0) {
// 如果能被整除,则不是素数
return 0;
}
}
// 否则是素数
return 1;
}
/* 计算区间 [m, n] 内所有素数的和 */
int PrimeSum(int m, int n) {
int sum = 0; // 初始化素数和为 0
// 遍历区间 [m, n]
for (int i = m; i <= n; i++) {
if (prime(i) == 1) { // 如果 i 是素数
sum += i; // 将素数加到总和中
}
}
return sum; // 返回素数和
}