設定 EYNY 為首頁  |  加入我的最愛
伊莉討論區


休閒聊天
學術文化
感情感性
興趣交流
家庭事務
旅遊交流
飲食交流
家族門派
貼圖分享
動漫交流
音樂世界
美容打扮
潮流資訊
影視娛樂
電玩遊戲
連線遊戲
網絡遊戲
交易廣場
下載分享
BT下載區
CB下載區
電腦資訊
數碼產品
手機交流
網站事務
體育運動
時事新聞
上班一族
博彩娛樂
成人話題


 
標題: [求助] 找質數程式出現問題~~
刃丑
痴肥
Rank: 4Rank: 4Rank: 4Rank: 4
大學生(4000/12000)
潛水  
UID 25791
精華 1
積分 11930
帖子 901
潛水 -48 米
閱讀權限 50
註冊 2004-12-12
來自 殺死人格鬥大賽
發表於 2008-1-21 08:44 PM  資料 文集 短消息 
伊莉部落格伊莉交友伊莉聊天伊莉相簿

找質數程式出現問題~~

[顯示] [隱藏]
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main()
{
    FILE *fout;
    fout=fopen("c:\\jc.txt","w+t");
    unsigned long n,i,j,prime,save[99999],in=0;
     n=429496729;
     save[0]=3;
    clock_t start, finish;
    double duration;
    start=clock();
    fprintf(fout,"2,0.000000\n");
    printf("2,0.000000\n");
    for(j=3;j<=n;j+=2)
    {
     prime=1;
     for(i=0;i<=in;i+=1)
     {
                     
                     if(j%save==0)
                     prime=0;
     }
     if(prime==1){
                  save[in]=j;
                  finish=clock();
                  duration = (double)(finish - start) / CLOCKS_PER_SEC;
                  fprintf(fout,"%d,%f\n",j,duration);
                  printf("%d,%f\n",j,duration);
                  in++;
                  }
    }
    fclose(fout);
    system("PAUSE");
    return 0;
}

就是找到的質數save下來在save
下一個數只用 / 已找到的質數就可以了
但是run出來出現error,記憶體問題......
頂部
superjoeliao

Rank: 2Rank: 2
小學生(200/1000)
潛水  
UID 2783234
精華 0
積分 340
帖子 299
潛水 7777 米
閱讀權限 20
註冊 2007-11-15
發表於 2008-1-21 09:30 PM  資料 文集 短消息 
伊莉遊戲

以下為我的淺見

你應該只要先將質數直接寫到檔案就好,之後等到都跑完之後,在計算比數,並且用動態配置記憶體的方式把檔案內所有值讀進所配置的記憶體中相信一抵可以避免記憶體錯誤
頂部
Lelouchcc

Rank: 1
幼兒生(0/200)
潛水  
UID 4168610
精華 0
積分 150
帖子 51
潛水 67 米
閱讀權限 10
註冊 2008-5-10
發表於 2008-7-10 08:52 PM  資料 文集 短消息 
維克斯討論區

回復 #1 刃丑 的帖子

你想得太難
以下係我的意見
第一, 1 這個數字自己定義 我定義質數
if(x==1)
System.out.printf("%d is a prime number!\n ",x);   //x 是輸入的數
第二,用一個for去測驗是否質數
for(int i = 2 ; i<x;i++){
       if(x%i==0){
                System.out.printf("%d is not a prime number! divided-able by %d\n",x,i);
                b = true;       //一開始係false
                break;                         //如果有一個數使 input 的數出 remainder 是 0,  input 的數不係質數
        }
}
第三,上面出唔到結果, input 的數係質數
if(b == false)
        System.out.printf("%d is a prime number!\n",x);

希望 i can help you
頂部
 




當前時區 GMT+8, 現在時間是 2008-9-7 12:59 AM

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.671658 second(s), 7 queries , Gzip enabled

清除 Cookies - 聯繫我們 - 廣告查詢 [威旭代理] - 伊莉討論區 - Archiver
重要聲明:本討論區是以即時上載留言的方式運作,伊莉討論區對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。伊莉討論區有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。