輸出100以內(nèi)的素?cái)?shù)。素?cái)?shù)是只能被1 和本身整除的數(shù)?捎酶F舉法來(lái)判斷一個(gè)數(shù)是否是素?cái)?shù)。
void main(){
int n,i;
for(n=2;n<=100;n++){
for(i=2;i if(n%i==0) break; if(i>=n) printf("\t%d",n); } } int n,i; for(n=2;n<=100;n++){ for(i=2;i if(n%i==0) break; if(i>=n) printf("\t%d",n); } 本例程序中,第一層循環(huán)表示對(duì)1~100這100個(gè)數(shù)逐個(gè)判斷是否是素?cái)?shù),共循環(huán)100次,在第二層循環(huán)中則對(duì)數(shù)n用2~n-1逐個(gè)去除,若某次除盡則跳出該層循環(huán),說(shuō)明不是素?cái)?shù)。 如果在所有的數(shù)都是未除盡的情況下結(jié)束循環(huán),則為素?cái)?shù),此時(shí)有i>=n, 故可經(jīng)此判斷后輸出素?cái)?shù)。然后轉(zhuǎn)入下一次大循環(huán)。實(shí)際上,2以上的所有偶數(shù)均不是素?cái)?shù),因此可以使循環(huán)變量的步長(zhǎng)值改為2,即每次增加2,此外只需對(duì)數(shù)n用2~n去除就可判斷該數(shù)是否素?cái)?shù)。這樣將大大減少循環(huán)次數(shù),減少程序運(yùn)行時(shí)間。 #include"math.h" void main(){ int n,i,k; for(n=2;n<=100;n+=2){ k=sqrt(n); for(i=2;i if(n%i==0) break; if(i>=k) printf("\t%2d",n); } }
2010年計(jì)算機(jī)等級(jí)考試二級(jí)公共基礎(chǔ)知識(shí)教程
考試吧:2010年計(jì)算機(jī)等考二級(jí)C預(yù)測(cè)題匯總
全國(guó)計(jì)算機(jī)等考二級(jí)C語(yǔ)言:程序設(shè)計(jì)實(shí)戰(zhàn)匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |