C語言判斷數(shù)是否為素?cái)?shù)與素?cái)?shù)輸出
素?cái)?shù)的概念:素?cái)?shù)也叫質(zhì)數(shù),是一種只能被自己本身和1整除的數(shù)并且大于1,當(dāng)然0與1不是素?cái)?shù)。
1.判斷單個(gè)數(shù)是否為素?cái)?shù)(多組輸入)
我的思路是,首先輸入一個(gè)數(shù),利用素?cái)?shù)的概念來判斷是非為素?cái)?shù),是的話輸出素?cái)?shù);否則不輸出。
關(guān)于素?cái)?shù)的判斷首先我們吧輸入的數(shù)當(dāng)初被除數(shù),我選擇用一個(gè)for循環(huán)來實(shí)現(xiàn),從2開始當(dāng)除數(shù),每輪加1,一直循環(huán)去除被除數(shù),一直除到被除數(shù)減一那個(gè)數(shù),要是期間能被一個(gè)數(shù)整除則跳出循環(huán)不為素?cái)?shù),要是一直沒有被整除則輸出這個(gè)素?cái)?shù)。
#include<stdio.h> int main() { int a=0, j; while (scanf_s("%d", &a) != EOF) { int flag = 1; for (j = 2; j < a; j++) { if (a % j == 0) { flag = 0; break; } } if (flag == 1 && a != 0 && a != 1)//0與1不是素?cái)?shù) printf("%d為素?cái)?shù)。\n", a); else printf("%d不是素?cái)?shù)。\n", a); } return 0; }
這里我選擇引用一個(gè)局部變量flag來當(dāng)作判斷是否為素?cái)?shù)的標(biāo)志,剛剛開始賦值為1,假如被整除了就變?yōu)?,最后直接判斷flag的值,1為素?cái)?shù);否則不是。
最后代碼運(yùn)行
2.輸入范圍輸出范圍內(nèi)的素?cái)?shù)
這個(gè)算是上一個(gè)例子的高階版,這個(gè)題的我們得解決兩個(gè)問題:①把這個(gè)范圍的數(shù)全都進(jìn)行輸出②判斷輸出的數(shù)是否為素?cái)?shù),是的話輸出否則不輸出。
關(guān)于問題一我選擇用一個(gè)for循環(huán)來不斷輸出這個(gè)數(shù)進(jìn)行比較,因?yàn)檩斎氲氖且粋€(gè)范圍必定有最大值和最小值,我們可以以最小值為起始數(shù)開始循環(huán)輸出,每次加1,直到加到最大值停止輸出。
第二個(gè)問題就利用上面例子的思路就可以,把他包括到第一個(gè)for循環(huán)里面。
代碼如下
#include<stdio.h>//輸入一個(gè)范圍,求嘞個(gè)范圍里面的素?cái)?shù) int main() { int m, n; scanf_s("%d %d", &m, &n);//輸入一個(gè)范圍,m為最小值,n為最大值 for (int i = m; i < n + 1; i++) { int flag = 1; for (int k = 2; k < i ; k++) { if (i % k == 0) { flag = 0; break; } } if (flag == 1 && i != 0 && i != 1) printf("%d ", i); } return 0; }
最后代碼運(yùn)行
?成功運(yùn)行
3.總結(jié)
對(duì)于這個(gè)代碼我感覺唯一的難點(diǎn)在于對(duì)于break的理解,還有素?cái)?shù)的概念,還有對(duì)于0與1不是素?cái)?shù)的判斷上。
關(guān)于0與1不是素?cái)?shù)我運(yùn)用了相對(duì)暴力的做法,我選擇在最后flag的判斷里面加入對(duì)輸入的值的判斷,只有他不等于0或者1時(shí)才為素?cái)?shù)否則不是。
到此這篇關(guān)于C語言判斷數(shù)是否為素?cái)?shù)與素?cái)?shù)輸出的文章就介紹到這了,更多相關(guān)C語言 素?cái)?shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言實(shí)現(xiàn)掃雷小游戲(擴(kuò)展版)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)擴(kuò)展版的掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05C語言實(shí)現(xiàn)簡(jiǎn)易通訊錄實(shí)例
大家好,本篇文章主要講的是C語言實(shí)現(xiàn)簡(jiǎn)易通訊錄實(shí)例,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02采用C++實(shí)現(xiàn)區(qū)間圖著色問題(貪心算法)實(shí)例詳解
這篇文章主要介紹了采用C++實(shí)現(xiàn)區(qū)間圖著色問題(貪心算法),很經(jīng)典的算法問題,需要的朋友可以參考下2014-07-07C++成員函數(shù)如何當(dāng)作回調(diào)函數(shù)同時(shí)傳遞this指針
這篇文章主要介紹了C++成員函數(shù)如何當(dāng)作回調(diào)函數(shù)同時(shí)傳遞this指針,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11QT 中文亂碼解決匯總(QString與string、char*互轉(zhuǎn)亂碼)
在QT中使用中文時(shí),經(jīng)常會(huì)碰到論碼問題,本文主要介紹了QT 中文亂碼解決匯總(QString與string、char*互轉(zhuǎn)亂碼),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07