2013-11-26 2 views
0

Я просто новичок в php. В настоящее время я переживаю рекурсивную функцию. Поэтому я хочу знать, как получить все простые числа, начиная с 0 до 1000 в рекурсии. Так может кто-то любезно сказать мне, как это сделать? Это также поможет мне получить представление о рекурсивной функции.php получить первичные числа в рекурсивной функции

+0

Здесь вы получили ответ: http://stackoverflow.com/questions/16763322/a-formula-to-find-prime -numbers-in-a-loop –

+0

wow Я этого не знал. У вас также есть функция 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

Кроме того, результат is not not correct, ваша функция заявляет, что 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, по крайней мере, добавьте объяснение того, что вы делаете. Понятно, что ОП не знает, как это будет работать, поэтому выведите его. – Bojangles

+0

Использование 'gmp_prob_prime()' также, вероятно, менее полезно для OP, чем для этого вручную. –

Смежные вопросы