17/09/2018, 13:57

Liệt kê số Fibonacci nhỏ hơn n và là số nguyên tố

PHP Đề bài : Hãy liệt kê các số Fibonacci nhỏ hơn n là số nguyên tố, n = 1000. Lời giải File: fibonacci_nguyento.php <?php /** * Tính số fibonacci thứ n * * @author: viettuts.vn * @param n: chỉ số của số fibonacci tính từ 0 * vd: F0 = 0, F1 ...

PHP

Đề bài: Hãy liệt kê các số Fibonacci nhỏ hơn n là số nguyên tố, n = 1000.

Lời giải

File: fibonacci_nguyento.php

<?php
/**
 * Tính số fibonacci thứ n
 *
 * @author: viettuts.vn
 * @param n: chỉ số của số fibonacci tính từ 0
 *           vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2
 * @return integer
 */
function fibonacci($n) {
    if ($n < 0) {
        return - 1;
    } else if ($n == 0 || $n == 1) {
        return $n;
    } else {
        return fibonacci ( $n - 1 ) + fibonacci ( $n - 2 );
    }
}

/**
 * kiểm tra số nguyên tố
 *
 * @author viettuts.vn
 * @param n: số nguyên dương
 * @return boolean
 */
function isPrimeNumber($n) {
    // so nguyen n < 2 khong phai la so nguyen to
    if ($n < 2) {
        return false;
    }
    // check so nguyen to khi n >= 2
    $squareRoot = sqrt ( $n );
    for($i = 2; $i <= $squareRoot; $i ++) {
        if ($n % $i == 0) {
            return false;
        }
    }
    return true;
}

$n = 1000;
echo ("Các số fibonacci nhỏ hơn $n và là số nguyên tố: ");
$i = 0;
while (fibonacci($i) < $n) {
    $fi = fibonacci($i);
    if (isPrimeNumber($fi)) {
        echo ($fi . " ");
    }
    $i++;
}
?>

Kết quả:

Các số fibonacci nhỏ hơn 1000 và là số nguyên tố: 2 3 5 13 89 233
PHP
0