2013-11-26 3 views
0

저는 PHP에서 초보자입니다. 현재 재귀 함수를 사용하려고합니다. 그래서 재귀에서 0부터 1000까지 시작하는 모든 소수를 얻는 방법을 알고 싶습니다. 그러니 누군가 친절하게이 일을하는 방법을 말해 줄 수 있습니까? 이것은 또한 재귀 함수에 대한 아이디어를 얻는 데 도움이 될 것입니다.PHP는 재귀 함수에서 기본 숫자를 얻습니다.

+0

당신은 해답을 가지고 : 를 http://stackoverflow.com/questions/16763322/a-formula-to-find-prime -numbers-in-a-loop –

+0

와우 나는 이것을 몰랐다. gmp_nextprime 함수도 있습니다. http://php.net/manual/en/function.gmp-nextprime.php –

답변

0
<?php 
// Checks for prime numbers 

function IsPrime($num) {  
    $No = 0 ; 
    $Result = 0 ; 

    for($Divisor = 2 ; $Divisor < $num; $Divisor++) { 
     $Result = $num/$Divisor ; 
     if($Result != 1 && intval($Result) == $Result) { 
      $No = 1 ; 
      break ; 
     } 
    } 

    if($No != 1 ) { 
     $Result = $num ; 
    } 

    $No = 0; 

    // If the only divisor is the number itself, it's prime 
    return ($Result == $num) ? 'Yes' : 'No' ; 
} 

for($i = 0; $i < 1000; $i++) { 
    echo "<b> Testing number $i : </b>" ; 
    echo $i." is a prime number? ". IsPrime($i)."<br />"; 
} 

    ?> 
+1

이것은 재귀가 아닙니다 –

+0

또한 결과가 완전히 정확하지는 않습니다. 함수의 상태는 1입니다. 소수입니다. –

+0

이것이 재귀 함수라고 생각하지 않습니다. 재귀 함수를 원합니다 –

0

당신은 다음과 같이 할 수있는 .. 여기

<?php 

function dispPrime($i) 
{ 
    if($i<=1000) 
    { 
     if(gmp_prob_prime($i)===2) // Checks the number for prime. 
     { 
      echo "$i is a Prime Number"; 
     } 
     $i++; 
     dispPrime($i); // Recursive call (Function that calls itself) 
    } 
    else{ exit;} 

} 

dispPrime(0); 
+0

게으른 OP를 스푼 피드하는 경우 적어도 수행중인 작업에 대한 설명을 추가하십시오. OP가 어떻게 작동하는지 알지 못하므로 분명히 설명합니다. – Bojangles

+0

'gmp_prob_prime()'을 사용하는 것은 수동으로하는 것보다 OP에 덜 유용 할 것입니다. –

관련 문제