宣傳冊(cè)設(shè)計(jì)與制作圖片網(wǎng)站排名優(yōu)化服務(wù)
題目描述
統(tǒng)計(jì)素?cái)?shù)并求和
本題要求統(tǒng)計(jì)給定整數(shù) M M M 和 N N N 區(qū)間內(nèi)素?cái)?shù)的個(gè)數(shù)并對(duì)它們求和。
輸入格式:
輸入在一行中給出兩個(gè)正整數(shù) M M M 和 N ( 1 ≤ M ≤ N ≤ 500 ) N(1≤M≤N≤500) N(1≤M≤N≤500)。
輸出格式:
在一行中順序輸出 M M M 和 N N N 區(qū)間內(nèi)素?cái)?shù)的個(gè)數(shù)以及它們的和,數(shù)字間以空格分隔。
輸入樣例:
10 31
輸出樣例:
7 143
解題思路
本題要求統(tǒng)計(jì)給定整數(shù) M M M 和 N N N 區(qū)間內(nèi)素?cái)?shù)的個(gè)數(shù)并對(duì)它們求和。
首先,我們需要判斷一個(gè)數(shù)是否為素?cái)?shù)。素?cái)?shù)是指只能被 1 和自身整除的大于 1 的整數(shù)。因此,我們可以編寫(xiě)一個(gè)函數(shù) is_prime
來(lái)判斷一個(gè)數(shù)是否為素?cái)?shù)。
接下來(lái),我們需要遍歷從 M M M 和 N N N 的每個(gè)數(shù),檢查是否是素?cái)?shù),并將素?cái)?shù)的個(gè)數(shù)和它們的和累加到相應(yīng)的變量中。
最后,將素?cái)?shù)的個(gè)數(shù)和它們的和輸出即可。
根據(jù)上述思路,我們可以編寫(xiě)代碼實(shí)現(xiàn)這個(gè)過(guò)程。
Python代碼實(shí)現(xiàn)
# 判斷是否為素?cái)?shù)的函數(shù)
def is_prime(num):# 小于2的數(shù)不是素?cái)?shù)if num < 2 :return False# 判斷n能否被2到n的平方根之間的數(shù)整除for i in range(2, int(num ** 0.5) + 1):if num % i == 0:return Falsereturn True# 輸入m和n
m, n = map(int, input().split())# 初始化
prime_sum = 0
prime_count = 0# 遍歷從m到n的每個(gè)數(shù),檢查是否是素?cái)?shù)并累加到素?cái)?shù)和中
for number in range(m, n + 1):if is_prime(number):prime_sum += numberprime_count += 1# 輸出素?cái)?shù)和
print(prime_count, prime_sum)
以上代碼中,我們首先定義了一個(gè) is_prime
函數(shù),用于判斷一個(gè)數(shù)是否為素?cái)?shù)。然后,通過(guò)輸入函數(shù)獲取用戶輸入的 M 和 N 的值。
接下來(lái),我們初始化變量 prime_sum
和 prime_count
,用于記錄素?cái)?shù)的和和個(gè)數(shù)。
然后,我們通過(guò)一個(gè)循環(huán)遍歷從 M 到 N 的每個(gè)數(shù),并使用 is_prime
函數(shù)判斷是否為素?cái)?shù)。如果是素?cái)?shù),則將這個(gè)數(shù)累加到 prime_sum
中,并將 prime_count
值加一。
最后,輸出 prime_count
和 prime_sum
的值即可。