用C語言輸出 1到10000有多少個素數

時間 2023-02-15 18:30:09

1樓:緩緩掉落的松針

額 你的那個if(i==m)用得不對。

你上面明明限制了i<=m-1只有在m=2的時候材可能出現i==m成立的情況。

我給你寫寫。

#include

int main()

if(j==0)

}return 0;}

用c語言輸出從1到n( 1 < n <= 10000)有多少個素數

2樓:漠影歌

樓下的演算法真是醉了,素數不包括1,咔咔就從1開始算,威武啊!

#include

int main()

;for(pos = 2; pos <=30; pos ++還有一部分**字數不夠,需要的話繼續追問吧。

c語言 一秒內輸出1000000內的素數有多少個

3樓:匿名使用者

命令列,都沒有那麼快~

c語言 輸出1到100之間的全部素數?

4樓:網友

有三種方法:

1、輸出1-100以內的素數:

2、同樣,也是輸出1-100以內的素數,這個構造一個陣列,將其所有元素初始化為1,表示素數,這時取x從2開始,到100以內做迴圈。

若x為素數,即prime[x]!=0,使得每個i*x位置元素置0(prime[i*x]=0),表示為非素數,迴圈結束前x+1。

3、該方法是輸出100個素數,基本思想是構造一個素數表,利用函式判斷每個數是否能被其之前的素數整除,如果不能,則在素數表內加上該元素,不斷迴圈(while迴圈結束條件是cnt即陣列個數》100)。

5樓:胡穰將又菡

遍歷所有值,判斷是否為素數,如是,則輸出。

一、演算法設計:

1、遍歷1到100之間所有數,由於1的特殊性,不是素數也不是合數,所以可以從2開始遍歷;

2、對於每一個數,判斷是否為素數;

3、如果是素數,則輸出,否則繼續下一個。

#include

#include

int isprime(int n)//判斷素數函式。

int main()

三、執行截圖:

6樓:1024程式設計師

c語言經典例子之求100之內的素數。

7樓:可愛的

num/2就已經表示你是錯的。

編寫程式輸出100到10000以內的所有超級素數。

8樓:斐鹹

100到100000以內的所有素數。

9樓:滄海雄風

很簡單 馬上好 樓下學我的走遠點。

99 6733 6737 6779 7193 7331 7333 7393 9719 press any key to continue

#include

main()

}if (!flag)

prime/=10;

elsebreak;

}if (!flag)

printf("%d ",i);}

10樓:老鐵已久

我只能說, 簡直弱爆了。

首先找出0-9內的素數, 其實就是: 2, 3, 5, 7. 這裡特別說明: 1不是素數。

然後把這4個數任意組合。 位數由少到多。

逐一驗證是否為素數, 是就留下, 不是就走人。

具體**, 就簡單多了, 花樣各式, 但核心演算法就是上面我說的這些。

不知道能否幫到你。

編寫一個程式,輸出1~1000之內所有的素數(注意:素數即質數)及個數(c語言)

11樓:匿名使用者

剛好在做c++,順便幫你做下,望採納!

#include

main()

}printf("素數的個數:%d",sum);}

c語言程式設計求素數的個數,計算1到1000000000(10億)以內的素數個數,有多少個?附上程式

12樓:匿名使用者

不知道有沒有國際最優,但我這個演算法很頂尖了:計算1億以內的素數個數不到2秒鐘!1到10000000000(10億)共有素數50847534個,計算時間大概20多秒!

程式如下:#include

using namespace std;

int main()

flag[2] =1;

flag[3] =1;

flag[5] =1;

flag[7] =1;

flag[11] =1;

flag[13] =1; /從17開始filter,因為2,3,5,7,11,13的倍數早被kill了。

// 到n/13止的,哈哈,少了好多吧。

int stop = n/13;

for (i=17; i <=stop; i++)

// 統計素數個數。

for (i=2; i<=n; i++)

// 因輸出費時,且和演算法核心相關不大,故略// 釋放記憶體,別忘了傳說中的記憶體洩漏。

free(flag);

return count;}

13樓:匿名使用者

我做acm有一段時間了,但我估計還沒有這種演算法吧。。。質數的通項公式都還沒有呢,最快的方法也就只能用質數篩選法,不過速度至少也是o(n),也算不上很高效的演算法,所謂質數篩選法呢,就是先預設所有數都是質數,然後再明確2是個質數,然後把2的倍數全部刪掉,刪掉之後再看第一個沒有被刪掉的數,明顯他是3,然後刪掉3的倍數,這樣迴圈往復,可以比較高效的求出範圍內所有的質數。這個方法呢,不僅可以求出質數的個數,還可以求出具體的是哪一些數,我先把**發到這兒吧,你看看吧。。。

#include

#define max 1000000000bool flag[max];int main()

}for(i=2;i<=max;i++)

}printf("%i64d",num;//輸出個數,記著用__int64。。。

return 0;

} 我說明一下,你所說的高效演算法,的確沒辦法做到,篩法已經是最快的了,但是要篩選10億以內的數,還是要等待很久的,你可以試著把我的程式前面的那個巨集定義小一點,你會發現他還是可以比較快速的計算出來的。。。

跪求c語言程度最快速度計算出1-100000000之有多少個素數。

14樓:匿名使用者

你首先找出1-100000000個位是1,3,7,9的數,這時時間複雜度為o(1),然後在由c語言常用數素判斷方法。

第一萬位素數是多少,怎麼用c語言求前一萬位素數

15樓:匿名使用者

//1.程式分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。

//2.程式源**:

#include ""

#include ""

main()

if(leap)

leap=1;

}printf("the total is %d",h);

return 0;}

c語言輸出菱形,用C語言程式設計輸出菱形 圖案

include void a int i void main main for i 0 i 2 i 諸葛鬆 for int i 3 i 3 i 藍色草原 隨便寫了一個,你驗證一下吧 include void main for j 2 i 1 j 0 j printf n for i 3 i 0 i ...

c語言 輸出1到100之間的全部素數

有三種方法 1 輸出1 100以內的素數 2 同樣,也是輸出1 100以內的素數,這個構造一個陣列,將其所有元素初始化為1,表示素數,這時取x從2開始,到100以內做迴圈。若x為素數,即prime x 0,使得每個i x位置元素置0 prime i x 0 表示為非素數,迴圈結束前x 1。3 該方法...

c語言為什麼輸出這個,c語言輸出值為1 R怎麼回事

您好,這個問題是這樣的。請您注意看 byte 是8位,所以可以表示 2 的8次方 256 個資料。取值範圍是 128 到 127 int 則不確定了。在 16 位的系統或編譯器上,可以表示 2 的 16 次方個資料。取值範圍大概是這個數除以 2 從負數到正數。在 32 位的系統或編譯器上,可以表示 ...