1樓:匿名使用者
寫了一個,連寫檔案也只用13秒.
ncount=5761455
time=13s
#include
#include
void main()
//先假設所有的數都是素數
for(i=0;i pbyte[0]=false;//0不是素數pbyte[1]=false;//1不是素數pbyte[2]=true;//2是素數 //篩選,所有偶數都不是素數(除2以外) for(i=4;i //篩選所有素數的整數倍都不是素數 for(i=3;i file *file; if( (file = fopen( "test.txt", "a" )) == null ) ncount=0; for(i=2;i time(&tend); fclose( file); delete pbyte;} 2樓:匿名使用者 main() for(i=1;i<=s;i++) printf(%d,a[i]); }定義部分略 3樓:匿名使用者 首先肯定要定義成long 型了 這個n 從以下幾方面進行處理: 1:偶數者除了2以外均不是,任務將縮短一半 可採用 n+=2實現 2:最後一位是5的除了5以外不是素數,任務在1的基礎上縮短1/5 3:在判斷能被3及根號或一半n之間的資料時,也採用全用質數的方法i+=2 以及除去尾數是5的數。這樣在每個n值下,檢測不能被i整除的任務將縮短1/2+1/5即7/10。 4:對於資料較大的n可以採用位運算、移位運算、加法運算將其十進位制時各位數字之和除以3,能整除者不是素數。 建議採用**處理1-10 10-100 000 100 000-100000000分別編制程式段採用不同方法實現。 1-10 :簡單處理 1 0-100 000:採用1,2,3(i採用3——n/2) 100 000-100000000:採用1,2,3(i採用3——根號n),4 「warmwormn - 舉人 五級 。。。。。。。 篩選 每次把質數的倍數全部刪除 只有迴圈和加法 」綜觀不如樓上的方法(但實現很麻煩,並且表達不對):如下 1定義一個素數儲存陣列a: 2每一個n(>2),除去偶數,只要將已經存在在a中資料進行組合相乘,均不與當前n相等的話,則n 為素數,存入a 中 3當然在組合過程中, !: 明顯小於前一個n時,可捨去不再比較,也不再累計到下一個n的比較。 !!:大於當前n及其後面的組合可捨去不再比較,但需要累計到下一個n的比較。 只有利用了這種方法,才有可能,降低運算工作量 1024程式設計師 c語言經典例子之求100之內的素數 bp哥 這個問題是c語言中比較常見的一種題目,做法有很多中,我這裡提供一種最基礎的演算法,如下 c語言 求100以內素數。include voidmain inti,j for i 2 i 100 i intt 1 for j 2 j 廖慨督斯... include int main 希望可以幫助到你!c語言 求n到m之間所有的素數 include int main if u 1 s 0 return 0 你的if u i 0 是不是有問題應該是if u i 0 你這裡是要取餘把 是餘數為0 c語言 輸出n到m之間的所有素數 對n到m之間所有數進... 庚午子李 有技術含量的,遞迴求解 include int a int n void main 給你個完整點吧 include int main while n 2 0 for int sum 0,i 1 i n i 2 sum i printf sum d n sum return 0 扛菸頭的大槍...c語言求100以內的素數
c語言問題求從n到m的所有素數,C語言 求n到m之間所有的素數
C語言,求1 3 5n的程式設計,怎樣利用C語言程式設計求1 3 5 N 的值?