高考申論題
113年
[電力工程] 計算機概論
第 五 題
五、請詳細說明下列 Python 語言程式的執行過程,並寫出程式的輸出。(20 分)
max = 150
goal = list(range(3,max,2))
goal.insert(0,2)
index = 1
target = 0
while index < len(goal):
target = goal[index] ** 2
while target <= goal[-1]:
if target in goal:
goal.remove(target)
target = target + goal[index] * 2
index = index + 1
print(goal)
print(len(goal))
📝 此題為申論題
思路引導 VIP
這是一道 Python 程式追蹤題。首先識別程式邏輯:range(3, 150, 2) 生成 3 到 149 的奇數。插入 2 後,goal 初始為 [2, 3, 5, 7, 9, 11, ..., 149]。外層迴圈從 index=1(即數字 3)開始。內層迴圈計算平方(例如 3 的平方是 9),並以該數的兩倍為間隔(例如 3*2=6)進行刪除。觀察此邏輯,這正是「埃拉托斯特尼篩法」(Sieve of Eratosthenes)的變體,目的是找出 150 以內的所有質數。考生需要耐心推演前幾步,並得出最後結果為質數列表。
🤖
AI 詳解
AI 專屬家教
【考點分析】 本題考查 Python 列表操作(insert, remove)、迴圈控制及邏輯分析能力。該程式實作了尋找質數的篩選演算法。 【分析與論述】
▼ 還有更多解析內容