2017-01-31 6 views
0

소수에 대한 함수는 명확하므로 생략했습니다.루프에서 다음 번호를 선택하는 방법은 무엇입니까?

$a=10; 
$z=30; 
for($prime = $a; $prime<$z; $prime++) 
{ if 
(Prim($prime) == TRUE) 
{ echo $prime."<br/>";}} 

는 지금은, 변수 $prime$next_prime 사이의 작업을 수행 할뿐만 아니라, 시퀀스의 다음 학기를 선택하기 원하는만큼 루프에 간다 - 예를 들어 같은 :

$prime_gap=bcsub($next_prime, $prime); 

내가 찾은 해결책은 무엇이든간에 결코 적절하지 않습니다. 그것은 확실히 간단하지만 나는 이미 필사적입니다.

+1

해당 언어는 어떤 언어입니까? –

+0

그것은 PHP입니다. 물론 제가 아는 코드 (물론 html 외에) – HdL

답변

0

먼저 next_prime() 함수를 만들어 보시기 바랍니다. 이와 같이, 예를 들면 :

function next_prime($n) { 
    do { 
     $n++; 
    } while (!Prim($n)); 
    return $n; 
} 

은 그럼 당신은 아주 쉽게 코드를 리팩토링 할 수 있습니다되지 않은 if 내가 for 루프를 추가 너무 좋은

$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"; 
    } 
} 
+0

안녕하세요! 굉장히 감사합니다. 정말 고마워요. 네, 다른 종류의 문제에 대해서도 이런 종류의 솔루션이 반복적으로 필요하기 때문에 간단하게 유지하고 싶습니다. 사실 나는 php.net에서 미리 준비된 함수가 없다는 것을 의아하게 생각합니다. 준비가 끝나면 보여 드리겠습니다. – HdL

+0

@HdL :이 사이트에서는 모든 유용한 답변을 upvoting하여 감사를 표합니다. 답의 왼쪽 상단에있는 위쪽 화살표를 클릭하면됩니다. 또한 답의 왼쪽 상단 근처에있는 체크 표시를 클릭하여 가장 좋은 답을 수락하십시오 (실제로 질문에 답한 경우). 그것은 주석에서 감사를 말하는 것보다 낫습니다. 또한 다른 사람들이 귀하의 질문에 대한 답변을 얻는 데 도움이됩니다. –

0

입니다,하지만 당신은 간단한 무언가를 원하는 경우 이해하기 쉽고 여전히 사용할 수 있습니다. (나는 $$ next_prime에서 $ prime & $ 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; 
    } 
    } 
}