-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