素性测试
素性测试或素数判定,是檢驗一個給定的整數是否為質數的测试。
素数判定的历史
鉴别一个自然数是素数还是合数,这个问题在中世纪就引起人们注意,当时人们试图寻找質数公式,到了高斯时代,基本上确认了简单的質数公式是不存在的,因此,高斯认为对素性判定是一个相当困难的问题。从此以后,这个问题吸引了大批数学家。 質性判斷演算法可分為兩大類,確定性演算法及隨機演算法。前者可給出確定的結果但通常較慢,後者則反之。詳見以下列表。
確定型演算法
- 試除法(埃拉托斯特尼篩法)
- 嘗試從 到 的整數是否整除 。
// 以 C 語言實現埃拉托斯特尼篩法
// 用以判斷質數的 is_prime 副函式
int is_prime(int x)
{
if(x < 2) return 0; // 1 不是質數,且不考慮負整數與 0,故輸入 x<=1 時回傳 0
for(int i = 2; i * i <= x; ++i)
if(x % i == 0) return 0; // 一旦出現整除,回傳 0
return 1; // 迴圈跑完後都沒有整除,回傳 1
}
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.