[問題] 隨機生成兩個質數..)done

看板C_and_CPP作者 (蟑螂)時間15年前 (2010/11/01 23:18), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) ...我用srand((int)time(0));去生成隨機數 但是我要製作兩個100000以下的質數,所以我在主程式中用 p=makeprime(); q=makeprime(); 但是不知道是不是時間太近 p跟q是一樣的質數... 不知道有沒有辦法解決~"~.. 希望得到的正確結果: 兩個不同的質數 程式跑出來的錯誤結果: 兩個一樣的質數 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) DEV-C++ 有問題的code: (請善用置底文標色功能) int makeprime() { srand((int)time(0)); int m,n,num;//先創造兩個變數 int is_prime=1;//定義一個"判斷的字串",並指定他的值為1 int check=0; while(check==0) { num=random(100000)+100; m=2; while(m<num)//判斷m<n就停止迴圈 { if(num%m==0)//如果n/m的餘數是0 {is_prime=0;}//把那個"判斷的字串"設定值為0 m=m+1; } if(is_prime==0)//當"判斷的字串"為0 執行下一段 {is_prime=1;} else//否則就執行下一段 {return num; check=1;} } }; 補充說明: 無 -- by 嘎抓 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.208.125

11/01 23:21, , 1F
srand((int)time(0)); <= 把這個移到 main 裡面
11/01 23:21, 1F

11/02 10:24, , 2F
功課繳交截止了 給個推 希望你有寫出來
11/02 10:24, 2F

12/13 15:47, , 3F
srand只要開始時第一次即可..
12/13 15:47, 3F
文章代碼(AID): #1Cpjezsm (C_and_CPP)