全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:894
推到 Plurk!
推到 Facebook!

質數篩選法

尚未結案
roylin168
一般會員


發表:1
回覆:0
積分:0
註冊:2005-10-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-04 18:53:52 IP:218.168.xxx.xxx 未訂閱
#include 
#include <math.h>
#define MAX_N 200
int main(void)
{
        unsigned int i,k,v;
    int number[MAX_N];
        for(i=3;i<=MAX_N;i =2)
                number[i]=1;
        v= (int)sqrt((double)MAX_N);
        for(i=3;i<=v;){
                k=i i;
                while(k<=MAX_N){
                        number[k]=0;
                        k =i;
                }
                do
                        i  ;
                while(number[i]==0);
        }
        printf("%d\t",2);            for(i=3;i<=MAX_N;i =2)
                if(number[i]==1)
                        printf("%d\t",i);            return 0;
}
我想把儲存的方式 從 陣列改成 位元 因為一陣列=8位元 這樣可以提升8倍的速度... 但是不知道要如何下手... 請大家幫幫忙嚕>"< 發表人 - roylin168 於 2005/10/04 19:15:13
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-04 19:13:24 IP:210.68.xxx.xxx 未訂閱
您好:    PO程式碼的方式與版規說明請參考下面連結,煩請修改謝謝您的配合 >
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-04 20:55:57 IP:219.84.xxx.xxx 未訂閱
用位元會提昇8倍的速度是錯的觀念, 執行速度取決於machine code的clock time, 在486機器上8,16,32bit間加法運算的clock time是一樣的 另外"一陣列=8位元"...這個說法很奇怪 我反而要問你區域陣列在記憶體中是怎麼配置的? 或許你可以先參考一些作業系統相關的書, 會有不少幫助。
系統時間:2024-06-29 16:42:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!