當前位置:學問君>學習教育>畢業論文>

素數問題在C語言教學中的應用

學問君 人氣:2.52W

摘要:作爲C語言的典型問題,素數問題可以在整個教學過程中反覆出現。素數問題本身有一定的趣味性,同時反覆處理同一問題可以在一定程度上降低學習難度。因此,在C語言的各教學環節有意識地使用素數問題舉例可望有效增強學習效果。

素數問題在C語言教學中的應用

關鍵詞:C語言 教學應用 素數

素數在很多領域都有應用,例如作爲公鑰密碼國際標準的RSA算法,就是基於兩個大素數的乘積實現的。素數問題在C語言中很重要,在算法、循環、數組、函數等章節均可出現,本文對素數問題在各章節的具體應用加以總結分析。

一、素數和算法描述

算法是計算機爲求解特定問題而採取的方法和步驟,爲加深學生對計算機算法的理解程度,將判斷素數的算法作爲計算機算法的描述示例。

要判斷n是否素數,可以讓它除以2、除以3、……一直到除以n-1,只要有任一個能整除它就不是素數,反之如果不能整除就是素數,算法具體如下。

步驟1:從鍵盤上輸入n的值;

步驟2:2→i;

步驟3:n除以i,得到餘數r,若r等於0,表示能夠整除,打印n“不是素數”,算法結束,否則執行步驟4;

步驟4:i+1→i;

步驟5:如果i小於等於n-1轉步驟3,否則打印n“是素數”,算法結束。

二、素數和循環

循環是非常重要的一種基本結構,特點是在給定條件成立時多次重複執行某個程序段,使用循環結構可以大幅度提高編程效率,將素數判斷程序作爲循環結構的示例程序。

程序中的循環變量終值使用的是sqrt(n),與使用n-1或者n/2作爲循環變量終值相比,循環執行次數更少,因而效率更高。

三、素數和數組

數組部分可以使用篩法求某一範圍內的素數。篩法是另一種判斷素數的'簡單算法,方法是先在紙上按順序寫下2~100,然後依次挖掉2的倍數、3的倍數、5的倍數……紙上最後剩下的就是100之內所有的素數。

四、素數和函數

函數屬於C語言中難度較高的部分,講授這部分時可以編寫一個判斷素數的函數,調用此函數驗證著名的哥德巴赫猜想。哥德巴赫猜想可以簡單描述爲任一大於等於6的偶數都可以分解爲兩個素數之和。以下程序對6~100之間的偶數進行哥德巴赫猜想的驗證。

由以上示例可見,素數問題可以在C語言整個教學過程中反覆出現。對學生來說,素數問題本身有一定的趣味性,同時反覆處理同一問題可以在一定程度上降低學習難度。因此,在C語言的各個教學環節有意識地使用素數問題舉例可望有效增強學習效果。

參考文獻:

[1]王文東,李竹林.C語言程序設計[M].西北大學出版社,2014.