-4
民間你好我試圖創建一個尋找最近的素數,以一定的整數PHP函數: 例如,如果你被點名功能「nearest_prime」,它會像使用這個:最近的素數給定的整數
$a = 399823;
$b = nearest_prime($a);
echo $b;
*請記住,整數可以是任何大小,並且最接近的素數可以高於或低於整數。如果兩個整數與整數等距,則返回下一個整數。
民間你好我試圖創建一個尋找最近的素數,以一定的整數PHP函數: 例如,如果你被點名功能「nearest_prime」,它會像使用這個:最近的素數給定的整數
$a = 399823;
$b = nearest_prime($a);
echo $b;
*請記住,整數可以是任何大小,並且最接近的素數可以高於或低於整數。如果兩個整數與整數等距,則返回下一個整數。
我只測試了這個簡單,但它似乎工作。肯定有更有效的方法。
function nearest_prime($num)
{
$up = NULL;
$down = NULL;
$counter = 1;
while($up === NULL && $down === NULL)
{
$going_up = $num + $counter;
$prime_up = TRUE;
for ($k = 2;$k < $going_up;$k++)
{
if (($going_up % $k) === 0)
{
$prime_up = FALSE;
}
}
if ($prime_up === TRUE)
{
$up = $going_up;
}
$going_down = $num - $counter;
$prime_down = TRUE;
for ($k = 2;$k < $going_down;$k++)
{
if (($going_down % $k) === 0)
{
$prime_down = FALSE;
}
}
if ($prime_down === TRUE)
{
$down = $going_down;
}
$counter++;
}
$return = array();
if(!is_null($up))
{
$return[] = $up;
}
if(!is_null($down))
{
$return[] = $down;
}
return implode(',',$return);
}
這顯然是一個家庭作業問題,我正在爲它寫一個函數,以便我自己的學習,如果你想保持張貼。 – Ethan 2013-02-10 21:57:33