PHP, Generating Primes, What's Wrong -


what's wrong this? conditional statement looks solid enough, yet numbers included

function generate_primes(){    $max = 100;    $primes = array();     for($current_pointer = 1; $current_pointer <= $max; $current_pointer++){          for($divider = 1; $divider <= $current_pointer; $divider++){         //if(in_array($divider, $primes)){         if(($current_pointer % $divider === 0) && ($divider !== 1) && ($divider ===    $current_pointer)){            $primes[] = $current_pointer;            } //}          }      } print_r($primes);  } generate_primes(); 

you need deal case divider divide evenly current_pointer divider doesn't equal current pointer. in case, need jump out of loop (i.e. you've found divides evenly, number isn't prime). written, loops hit case of dividing number itself, numbers succeed.

in other words, you're trying test first successful divider being number itself, that, have stop trying when hit different successful divider.

    if(($current_pointer % $divider === 0) && ($divider !== 1)){          if ($divider === $current_pointer)             $primes[] = $current_pointer;          } else {             continue; // continue makes stop testing current pointer , go on next          } 

Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -