Create a boolean array " $ prime [ 0 . . $ n ] " and initialize all entries it as true . A value in $prime [ i ] will finally be false if i is Not a $prime , else true .
$ prime = array_fill ( 0 , $ MAX + 1 , true ) ; function SieveOfEratosthenes ( ) { global $ MAX ; global $ prime ; $ prime = array_fill ( 0 , $ MAX + 1 , true ) ; $ prime [ 1 ] = false ; for ( $ p = 2 ; $ p * $ p <= $ MAX ; $ p ++ ) {