素数的函数很清楚,所以我省略了它。
$prime
现在我想要选择序列的下一个术语,以便在变量$next_prime
和$prime_gap=bcsub($next_prime, $prime);
之间执行操作,只要循环继续 - 例如:
{{1}}
无论我找到什么解决方案,我都会尝试,但这绝不是合适的解决方案。这肯定很简单,但我已经绝望了。
答案 0 :(得分:0)
我建议你先创建一个next_prime()
函数。像这样,例如:
function next_prime($n) {
do {
$n++;
} while (!Prim($n));
return $n;
}
然后您可以非常轻松地重构代码:
$a=10;
$z=30;
for ($p1=next_prime($a),$p2=next_prime($p1); $p2<$z; $p1=$p2,$p2=next_prime($p2)) {
if (some_function($p1, $p2)) {
echo "I like $p1 and $p2\n";
}
}
答案 1 :(得分:0)
我在for循环中添加的if
不太好,但是如果你想要一些简单易懂的东西,你仍然可以使用它(我将名称从$ prime&amp; $ next_prime切换到$ prime&amp; $ previous_prime,我认为这更有意义)
$a=10;
$z=30;
$previous_prime = 0;
for($prime = $a; $prime<$z; $prime++)
{
if (Prim($prime) == TRUE)
{
echo $prime."<br/>";
if ($previous_prime == 0) {
$previous_prime = $prime
} else
{
$prime_gap = $prime - $previous_prime;
$previous_prime = $prime;
}
}
}