為了簡化程式設計細節,本題假設,對程式所將輸入的數字,都會是大於2的正整數。
(一)小明設計了一個演算法,用來判斷所輸入的一個正整數,是否為質數。小明的演算法,用虛擬碼寫出如下:
procedure check_prime(N) {
isprime = TRUE
for ( i = 2 ; i <= N ; i = i + 1) {
If ( N 是 i 的倍數 ) then isprime = FALSE
}
print ( isprime )
}
小華將小明的演算法輸入電腦,發現演算法有錯誤。小華跟小明詢問,發現小明的觀念沒錯,只是打字時不小心。請問,小華該如何為小明改正這個演算法?
(註:你只能更正演算法中打字錯誤的部分,不可以重新設計新的演算法)(10分)
(二)小華是個遞迴演算法的愛好者。所以,小華嘗試用遞迴程式呼叫,重新設計了一個,也能判斷所輸入的一個正整數,是否為質數的遞迴演算法,交給小明。結果小明不小心弄丟了。現在,請你為小明重新設計這個,能用來判斷所輸入的正整數是否為質數的遞迴演算法,請注意,在你的演算法中不可以使用任何的迴圈。(15分)