這是一個(gè)比較經(jīng)典的題目, 很多地方都出現(xiàn)
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到鞍山網(wǎng)站設(shè)計(jì)與鞍山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋鞍山地區(qū)。首先是要了解質(zhì)數(shù)的定義:
質(zhì)數(shù)是指在大于1的自然數(shù)中,除了1和它本身以外不再有其他因數(shù)的自然數(shù)。
所以1不是質(zhì)數(shù) 2以及后面的數(shù)才有可能是質(zhì)數(shù)
核心辦法是計(jì)算某個(gè)數(shù)能不能被整除
在計(jì)算機(jī)語(yǔ)言里面 可以用計(jì)算機(jī)的方法 就是 取模
取模余0 那就是能被整除
取模余非零 那就是不能被整除
求解過(guò)程如果在1-某個(gè)數(shù)的范圍之內(nèi)
這個(gè)范圍之內(nèi)的每一個(gè)數(shù) 都不是某個(gè)數(shù)的因子
這個(gè)范圍之類(lèi)的每一個(gè)數(shù) 都不能整除某個(gè)數(shù)本身
那么他就是質(zhì)數(shù)
就是 用這個(gè)范圍之類(lèi)的每一個(gè)數(shù) 去向某個(gè)數(shù)本身去取模
取模的余數(shù)都不為0 ,那么 他就是質(zhì)數(shù)
易錯(cuò)點(diǎn)2就是質(zhì)數(shù), 一般情況下會(huì)不小心把2忽略掉
如何解決呢 不難的 想不起來(lái)就看下面代碼唄
計(jì)算優(yōu)化請(qǐng)仔細(xì)思考, 如果要求11是不是質(zhì)數(shù)
需要把2 - 10 都計(jì)算一遍嗎?
你計(jì)算到3 或者 5的時(shí)候就可以停下來(lái)去下結(jié)論了吧
是吧
所以計(jì)算方式是可以?xún)?yōu)化的
具體原理涉及數(shù)學(xué) emmmm.......... 先知道大概先吧 hhh
小小總結(jié)好像沒(méi)啥好說(shuō)的 hhh
寫(xiě)程序之前一定要理清思路 理清思路啊
否則越寫(xiě)越亂 欲速則不達(dá)
Demo展示Please enter the range of prime numbers :
100
This is a prime number: 2
This is a prime number: 3
This is a prime number: 5
This is a prime number: 7
This is a prime number: 11
This is a prime number: 13
This is a prime number: 17
This is a prime number: 19
This is a prime number: 23
This is a prime number: 29
This is a prime number: 31
This is a prime number: 37
This is a prime number: 41
This is a prime number: 43
This is a prime number: 47
This is a prime number: 53
This is a prime number: 59
This is a prime number: 61
This is a prime number: 67
This is a prime number: 71
This is a prime number: 73
This is a prime number: 79
This is a prime number: 83
This is a prime number: 89
This is a prime number: 97
Process finished with exit code 0
代碼演練#include#includeint main() {
unsigned Number_Range = 100;
unsigned Half = 10;
printf("Please enter the range of prime numbers : \n");
scanf("%u", &Number_Range);
// 遍歷2 - 某個(gè)范圍的每個(gè)數(shù)字
for (unsigned i = 2; i<= Number_Range; ++i) {
// 用來(lái)做計(jì)算優(yōu)化 只要遍歷到這個(gè)數(shù) 遍歷就可以停止了
Half = (i / (sqrt(2))) + 1;
// 遍歷2 - 該數(shù)字本身(這里做了優(yōu)化, 不用遍歷到該數(shù)字本身, 只要到根號(hào)2倍就可以了),
// 是判斷是否能成為質(zhì)數(shù)的具體過(guò)程
for (unsigned j = 2; j<= Half; ++j) {
// 是質(zhì)數(shù)的條件
if (j >= Half){
printf("This is a prime number: %d \n",i);
}
// 不是質(zhì)數(shù)的條件
if (i % j == 0){
break;
}
}
}
return 0;
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧