講解兩種算法,其實是一種,只不過第二種在第一種的的方法優(yōu)化了一點:

第一種:直接取100到200之間的奇數(shù),因為偶數(shù)肯定不是素數(shù),然后對每個數(shù)用取余數(shù)的方法判斷是不是素數(shù),最后再判斷一下出來的數(shù)是否和自身相等,相等即是素數(shù)。
代碼:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int count, num1, num2 = 0;
for (num1 = 101; num1 <= 200; num1 += 2)//偶數(shù)不是素數(shù),直接用奇數(shù)。
{
for (num2 = 2; num2 <= num1; num2++)
{
if (num1 % num2 == 0)
break;
}
if (num2 == num1 )//因為是素數(shù)的話,只有1和自身能除過。
{
printf("%d ", num1);
count++;
}
}
printf("\ncount=%d", count);
system("pause");
return 0;
}
第二種:用到了平方根的辦法來減少需要判斷的數(shù),
原因是因為

用到這個方法,同時也將較為抽象的判斷素數(shù)方法變?yōu)橐胍粋€參數(shù)來判斷,更加清楚。
代碼:
//打印100到200的素數(shù)(平方根優(yōu)化法)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int i, t, k,count = 0;
int flag = 0;//僅僅是判斷是合數(shù)還是素數(shù)引入的一個參數(shù)
for (k = 100; k <= 200; k++)
{
t = sqrt(k);
for (i = 2; i <= t; i++)
{
if (k % i == 0)//判斷語句你特么給我寫上“==”,別在犯錯了!
{
flag = 1;
break;
}
}
if (flag == 0)
{
printf("%d \n", k);
count++;
}
flag = 0;//每次循環(huán)結(jié)束,參數(shù)要歸零,不然后面都是1。
}
printf("count = %d", count);
system("pause");
return 0;
}
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)頁標(biāo)題:C語言實現(xiàn)100到200的素數(shù)求解-創(chuàng)新互聯(lián)
本文地址:http://chinadenli.net/article28/edccp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、定制開發(fā)、品牌網(wǎng)站制作、網(wǎng)站維護、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容