[問題] 隨機生成兩個質數..)done
( *[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
11/01 23:21, 1F
推
11/02 10:24, , 2F
11/02 10:24, 2F
推
12/13 15:47, , 3F
12/13 15:47, 3F