概念解讀 :
質(zhì)數(shù)又被稱為素?cái)?shù),是指一個(gè)大于1的自然數(shù),除了1和它自身外,不能被其它自然數(shù)整除,且其個(gè)數(shù)是無窮的。
思路分析:
對(duì)于代碼大方向,我們可以直接主函數(shù)中寫,也可以用可移植性高的自定義函數(shù)來寫。
100以內(nèi)樣例輸出示意
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
后面是大于100的素?cái)?shù),可以修改代碼中的循環(huán)條件的范圍來改變自己的輸出
代碼內(nèi)容:
思路一:
#include <stdio.h>
#include <stdlib.h>
int main() {
int i ,j; //定義變量循環(huán)
printf("打印100以內(nèi)所有素?cái)?shù):\n");
for(i = 2;i <= 100; i++){ //外循環(huán)從2遍歷到100,可以修改范圍輸出不同范圍內(nèi)的素?cái)?shù)
for(j = 2;j < i; j++){ //內(nèi)循環(huán)通過大于1小于自身的因數(shù)進(jìn)行依次取余判斷,直到相除沒有余數(shù),跳出循環(huán)。
if(i % j == 0){
break;
}
}
if(j == i){ //這個(gè)判斷是重點(diǎn),意思是在前面的條件成立的前提下除數(shù)和被除數(shù)相等的才為素?cái)?shù),例如12有3×4,但是不相等,例如13只有當(dāng)i==j是即i==j==13時(shí)候才能成立
printf("%d ",i);
}
}
return 0;
}
代碼分析:通過二重循環(huán),外循環(huán)從2遍歷到100,可以修改范圍輸出不同范圍內(nèi)的素?cái)?shù),內(nèi)循環(huán)通過大于1小于自身的因數(shù)進(jìn)行依次取余判斷,直到相除沒有余數(shù),跳出循環(huán)。這個(gè)判斷是重點(diǎn),意思是在前面的條件成立的前提下除數(shù)和被除數(shù)相等的才為素?cái)?shù),例如12有3×4,但是不相等,例如13只有當(dāng)i==j是即i==j==13時(shí)候才能成立 。
思路二:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stdbool.h>
bool isprime(int i) //判斷是否是素?cái)?shù)的自定義函數(shù)
{
int j;
for(j = 2; j < sqrt(i); j++){ //for循環(huán)判斷如果不是素?cái)?shù)則返回0
if(i%j == 0){ //如果在i的平方根范圍內(nèi)的所有數(shù)字都不能被整除就說
//明這個(gè)數(shù)字是素?cái)?shù),但凡有一個(gè)能被整除那么這個(gè)數(shù)字就違背了素?cái)?shù)的定義
return 0;
}
}
return 1; //如果是素?cái)?shù)則返回1
}
int main() {
int i ,j;
printf("打印100以內(nèi)所有素?cái)?shù):\n");
for(i = 2;i <= 100; i++){ //for循環(huán)遍歷一個(gè)一個(gè)判斷,如果是素?cái)?shù)那么就打印出來,遍歷的數(shù)字范圍能被修改,輸出不同范圍的素?cái)?shù)
if(isprime(i)){
printf("%d ",i);
}
}
return 0;
}
代碼分析:非素?cái)?shù)一定是由兩個(gè)數(shù)字相乘所得,所以另一種思路即為sqrt()函數(shù)對(duì)除數(shù)開平方根,對(duì)其開平方根后的數(shù)字對(duì)于素?cái)?shù)來說一定是最大的平方根,一個(gè)數(shù)字分解為任意兩個(gè)乘數(shù)一定是小于等于其開平方根的數(shù)值的,所以我們循環(huán)條件只需要小于這個(gè)數(shù)字的開平方根的數(shù)字即可;被除數(shù)則小于被判斷數(shù)字的開方根的數(shù)字,最后經(jīng)過判斷,如果在有返回值的即為素?cái)?shù),這種方法可以使用可移植性較高的自定義函數(shù)完成。文章來源:http://www.zghlxwxcb.cn/news/detail-505266.html
以上就是我對(duì)100以內(nèi)輸出素?cái)?shù)的所有見解,如果不同見解可以私信我文章來源地址http://www.zghlxwxcb.cn/news/detail-505266.html
到了這里,關(guān)于[C語言]輸出100以內(nèi)的所有素?cái)?shù)(質(zhì)數(shù))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!