溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言實現(xiàn)100到200的素數(shù)求解

發(fā)布時間:2020-08-06 14:19:13 來源:網(wǎng)絡 閱讀:1177 作者:wx5c84977ee002d 欄目:編程語言

講解兩種算法,其實是一種,只不過第二種在第一種的的方法優(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ù),

原因是因為

C語言實現(xiàn)100到200的素數(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;

}


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI