# re: 一個求素數的算法(不懂) 回復 更多評論
2008-05-08 12:17 by
while $arr[j] * $arr[j] <=number (若number有一大于其平方根的因子,則必有小于其平方根的因子,在此之前必已返回false。故此當$arr[j] * $arr[j] >number時循環即可中止 )
return false if number % $arr[j] ==0(如果number能被arr[j]整除,當然不是素數,故返回false)
# re: 一個求素數的算法(不懂) 回復 更多評論
2008-05-08 14:10 by
@鄭暉
$arr[] 數組存儲的是小于number的素數集合
return false if number % $arr[j] ==0 $arr[j] 是小于number的某一個素數
這就是我搞不懂的,實際上,我們熟知的判斷素數方法是:
for(i=0; i<sqrt(number); i++) // 或者 i*i < number
{
if(number%i == 0) return false;
}
return true;
你說的是這個吧