習(xí)題5-4 使用函數(shù)求素數(shù)和 (20 分)
1. 題目摘自
https://pintia.cn/problem-sets/12/problems/304
2. 題目內(nèi)容
本題要求實現(xiàn)一個判斷素數(shù)的簡單函數(shù)牢硅、以及利用該函數(shù)計算給定區(qū)間內(nèi)素數(shù)和的函數(shù)伴找。
素數(shù)就是只能被1和自身整除的正整數(shù)笔横。注意:1
不是素數(shù)籍滴,2
是素數(shù)复局。
函數(shù)接口定義:
int prime( int p )
;
int PrimeSum( int m, int n )
;
其中函數(shù) prime
當用戶傳入?yún)?shù) p
為素數(shù)時返回 1
留荔,否則返回 0
虚茶;函數(shù)PrimeSum
返回區(qū)間 [m, n]
內(nèi)所有素數(shù)的和捅暴。題目保證用戶傳入的參數(shù) m≤n
婉陷。
輸入樣例:
-1 10
輸出樣例:
Sum of ( 2 3 5 7 ) = 17
3. 源碼參考
#include<iostream>
using namespace std;
int prime(int p);
int PrimeSum(int m, int n);
int main()
{
int m, n, p;
cin >> m >> n;
cout << "Sum of ( ";
for (p = m; p <= n; p++)
{
if (prime(p) != 0)
{
cout << p << " ";
}
}
cout << ") = " << PrimeSum(m, n) << endl;
return 0;
}
int prime(int n)
{
if (n < 2)
{
return 0;
}
for (int i = 2; i <= n / 2; i++)
{
if (n % i == 0)
{
return 0;
}
}
return 1;
}
int PrimeSum(int m, int n)
{
int s = 0;
for (int i = m; i < n; i++)
{
if (prime(i) != 0)
{
s += i;
}
}
return s;
}