本文共 1656 字,大约阅读时间需要 5 分钟。
判断素数的函数prime(p)和计算区间内素数和的函数PrimeSum(m, n)。素数即只能被1和自身整除的数。prime函数返回1当且仅当p为素数,否则返回0。PrimeSum函数返回区间内所有素数的和。
素数判断与求和 实现素数判断与求和的两个函数
函数定义
int prime(int p);
int PrimeSum(int m, int n);prime函数:当输入p为素数时返回1,否则返回0。
PrimeSum函数:计算区间[m, n]内所有素数的和。素数的定义
素数是指大于1的自然数,除了1和自身外,不能被其他自然数整除。
例如:2、3、5、7等等。注意:1不是素数,2是最小的素数。实现思路
1. prime函数的实现逻辑:
- 当p小于2时,返回0。 - 当p等于2时,返回1。 - 对于大于2的数,检查是否能被2或其他奇数整除。 - 优化:跳过偶数,直接处理奇数,提高效率。 2. PrimeSum函数的实现逻辑: - 遍历区间[m, n]中的每个数。 - 使用prime函数判断是否为素数。 - 累加所有素数的值,返回总和。代码实现
int prime(int p) { if (p < 2) return 0; if (p == 2) return 1; if (p % 2 == 0) return 0; for (int i = 3; i * i <= p; i += 2) { if (p % i == 0) return 0; } return 1; } int PrimeSum(int m, int n) { int sum = 0; for (int p = m; p <= n; p++) { if (prime(p)) { sum += p; } } return sum; }测试样例
输入:-1 10
输出:Sum of (2 3 5 7) = 17另一个测试用例:输入2 2,输出2;输入3 5,输出8。
这个实现通过模拟人类思维过程,提供了一个清晰且易于理解的解决方案。函数prime通过检查2和奇数来判断素数,而PrimeSum函数则利用prime函数逐个检查区间内的每个数,累加素数的和。这种方法既简洁明了,又能高效地解决问题。
转载地址:http://bnii.baihongyu.com/