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 位的系統或編譯器上,可以表示 ...