[英]Efficient Prime Number Test PHP
I need assistance on making this test most efficient as possible.我需要帮助使这个测试尽可能高效。 The user inputs a number and I test all the numbers up to the user number.
用户输入一个数字,然后我测试用户编号之前的所有数字。
function primetest($pt) {
$prime_numbers = file("prime.txt", FILE_IGNORE_NEW_LINES);
$max = sizeof($prime_numbers);
for ($i = 0; $i < $max; $i++) {
if ($prime_numbers[$i] < $pt) {
if ($pt % $prime_numbers[$i] == 0) {
$i = $max;
return false;
}
} else {
$i = $max;
}
}
return true;
}
$userinput_number = $_POST['f_userinput_number'];
if (isset($userinput_number) == false) {
echo '<form action="20160505.php" method=POST>
<strong>Number range to test for prime.</strong>
'.last_num().'-
<input type="text" name="f_userinput_number">
<input type="submit" value="Submit">
</form>';
} else {
#WORKS
$last_num_test = last_num();
if (($userinput_number > 1) && ($userinput_number == (intval($userinput_number))) && ($last_num_test <= $userinput_number)) {
for ($i = last_num(); $i < $userinput_number; $i= $i + 2) {
$test = primetest($i);
if ($test == false) {
echo "<b><font color=\"red\">X</font> $i is not prime</b>";
} else {
#To append number if not already in array and inform user if number is prime.
save($i);
}
}
} else {
echo "Make sure the number is a <b>natural number</b>, and is greater than or equal to <b> ".last_num()."</b>";
}
}
Here's exactly what you're looking for...这正是您要找的...
<?php
//Prime Function
function fn_prime($number) {
$i = 2; $result = TRUE;
while($i < $number) {
if(!($number%$i)) {
$result = FALSE;
}
$i++;
}
return $result;
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.