黃昌軍 李音 柴榮軍

摘 要: 作為C語言的典型問題,素數問題可以在整個教學過程中反復出現。素數問題本身有一定的趣味性,同時反復處理同一問題可以在一定程度上降低學習難度。因此,在C語言的各教學環節有意識地使用素數問題舉例可望有效增強學習效果。
關鍵詞: C語言 素數 教學應用
素數在很多領域都有應用,例如作為公鑰密碼國際標準的RSA算法,就是基于兩個大素數的乘積實現的。素數問題在C語言中很重要,在算法、循環、數組、函數等章節均可出現,本文對素數問題在各章節的具體應用加以總結分析。
1.素數和算法描述
算法是計算機為求解特定問題而采取的方法和步驟,為加深學生對計算機算法的理解程度,將判斷素數的算法作為計算機算法的描述示例。
要判斷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“是素數”,算法結束。
2.素數和循環
循環是非常重要的一種基本結構,特點是在給定條件成立時多次重復執行某個程序段,使用循環結構可以大幅度提高編程效率,將素數判斷程序作為循環結構的示例程序。
程序中的循環變量終值使用的是sqrt(n),與使用n-1或者n/2作為循環變量終值相比,循環執行次數更少,因而效率更高。