Đề bài
Hãy viết chương trình PHP liệt kê các số Fibonacci nhỏ hơn n là số nguyên tố, với n = 1000.
Lời giải
File: fibonacci_nguyento.php
<?php /** * Tính số fibonacci thứ n * * @author: kienthuclaptrinh.net * @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 kienthuclaptrinh.net * @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