『壹』 求能判斷大素數的演算法
一般的演算法就行了,你要優化的。
或者直接建立一個素數表
『貳』 判斷素數的演算法用流程圖表示對一個大於或等於100的正整數判斷它是不是一個素
開始
申請工作變數i,b,x
輸入x
i賦值2,b賦值1
A:條件判斷x%2是否等於0,是b賦值0,跳轉到B
i自加1
條件判斷i是否小於等於x整除2,是跳轉到A
B:條件判斷b是否等於1,如果條件成立則輸出: x是素數,否則輸出: x不是素數
結束
『叄』 哪個演算法是判斷一個數是否為素數的最簡單演算法
Miller_Rabin 演算法啊。在n個數值裡面隨機選擇一個數字,如果說這個數字能夠整除2到sqrt(n)的話,那這個數就是素數,反之則不是
『肆』 判斷一個數是否為素數的演算法
找質數的方法:寫出這個數的因數。再判斷這個數是質數還是合數。
1、一個數除了1和本身,不再有別的約數,這樣的數叫做質數或者素數。例如:2,3,5,7,11,13,17,19,23,29等等。
2、一個數,除了1和本身,還的別的因數,這樣的數叫做合數。例如4、8、8、9等等。例如:2的所有因數是1和2兩個,所以2是質數。例如6的所有因數是:1,2,3,6。一共是4個,所以6是合數。
找因12的因數:
1×12=12 2×6=12 3×4=12 所以12的因數有:1,2,3,4,6,12。共6個。
找因數的方法可以把這個數分成兩個因數相乘的積。從一開始比較容易找,寫的時候最好能從小到大寫出來。重復的只能寫一個。例如9的因數:1×9=9 3×3=9 9的因數是:1,3,9共3個。(重復的3隻能寫一個。)
『伍』 什麼是素數演算法
應當是素數判定演算法,也即判斷一個數是不是素數。
常見的演算法有:
1,暴力法,用2~sqrt(n)之間的所有整數依次試除n,這種方法時間開銷很大。
2,篩法。這種方法空間開銷很大。
3,Rabin-Miller演算法,這種方法在一定情況下會誤判。
4,AKS 演算法,多項式時間內判定
『陸』 判斷一個正整數是否是素數的常用演算法是 A,排序法 B,回溯法 C,遞歸法 D,窮舉法
摘要 您好,判斷一個正整數是否是素數的常用演算法是D窮舉法
『柒』 判斷一個整數是不是素數的演算法
建立一個素數表(一般不大於此整數的算術平方根即可)進行試除,或者利用一些常見素數性質,以及被素數整除的性質來判斷
『捌』 判斷一個數a是否為素數的演算法。
int prime(int n)
{int i;
for (i=2;i<=sqrt(n);i++)
if(n%i==0)
return 0;
return 1;
}
若返回0則不是素數;
若返回1則是素數
『玖』 C++幾種常見的素數判斷演算法
intsu(inta){//返回1為素數
inti=2;
for(;i<=a/2;i++){
if(a%i==0)
return0;
}
return1;
}
『拾』 下面判斷n是否為素數的演算法,其時間復雜度為多少 急啊!!謝了
int PMe(int n)
{
int i=1;//這個語句花費了常數時間,記為o(1)
int x=(int) sqrt(n);;//這個語句花費了常數時間,記為o(1)
while (++i<=x)
if (n%i==0) break;//這個while 循環最多一共運行x次,所以花費了o(sqrt(n))的運行時間
if (i>x) return 1;
else return 0;);;//這個if...else語句花費了常數時間,記為o(1)
}
所以整個演算法花費了o(1)+o(1)+o(sqrt(n))+o(1),所以時間復雜度就是o(sqrt(n))。
至於為什麼 o(1)+o(1)+o(sqrt(n))+o(1)=o(sqrt(n)),建議您去看麻省理工學院的公開課《演算法導論》的第一大部分:基礎。在第三章和第四章,講的很詳細。