將素數公式合併到循環中
在使用循環高效查找素數的過程中,您可能會遇到現有的情況方法不足。讓我們探索一個特定的用例並使用自訂公式提供更新的解決方案。
原始嘗試及其缺點
您最初共享的程式碼嘗試使用以下方法識別素數基於循環的方法。然而,它在正確識別素數方面面臨局限性,特別是由於其除法方法的限制。
最佳化的公式和實作
要解決這個問題,請考慮實作提供的回復中提到的isPrime() 函數:
<code class="php">function isPrime($num) { //1 is not prime. See: http://en.wikipedia.org/wiki/Prime_number#Primality_of_one if($num == 1) return false; //2 is prime (the only even number that is prime) if($num == 2) return true; /** * if the number is divisible by two, then it's not prime and it's no longer * needed to check other even numbers */ if($num % 2 == 0) { return false; } /** * Checks the odd numbers. If any of them is a factor, then it returns false. * The sqrt can be an aproximation, hence just for the sake of * security, one rounds it to the next highest integer value. */ $ceil = ceil(sqrt($num)); for($i = 3; $i <= $ceil; $i = $i + 2) { if($num % $i == 0) return false; } return true; }
將公式合併到循環中
現在,您可以在循環中利用此函數來高效查找素數:
<code class="php">$limit = 100; // Set a limit to the number range you want to check for ($i = 2; $i <= $limit; $i++) { if (isPrime($i)) { echo $i . " is a prime number. <br>"; } }</code>
透過此更新的方法,現在您可以準確地識別指定限制內的素數。
以上是如何使用循環和自訂公式有效地找到質數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!