1. 程式人生 > >求n以內的質數(質數的定義:在大於1的自然數中,除了1和它本身意外,無法被其他自然數整除的數)

求n以內的質數(質數的定義:在大於1的自然數中,除了1和它本身意外,無法被其他自然數整除的數)

思路: 1.(質數篩選定理)n不能夠被不大於根號n的任何質數整除,則n是一個質數
2.除了2的偶數都不是質數
程式碼如下:

/**
 * 求n內的質數
 * @param int $n 
 * @return array
 */
function get_prime($n)
{
    $prime = array(2);//2為質數

    for ($i = 3; $i <= $n; $i += 2) {//偶數不是質數,步長可以加大 
        $sqrt = intval(sqrt($i));//求根號n

        for ($j = 3; $j <= $sqrt; $j += 2) {//i是奇數,當然不能被偶數整除,步長也可以加大。 
            if ($i % $j == 0) {
                break;
            }
        }

        if ($j > $sqrt) {
            array_push($prime, $i);
        }
    }

    return $prime;
}

print_r(getPrime(1000));