Xin chào các bạn, mình là Quân, hôm nay mình sẽ hướng dẫn các bạn code ứng dụng liệt kê danh sách n số nguyên tố đầu tiên với n là số giới hạn mình nhập vào.
Hình dung bài toán:
B1: Viết một hàm kiểm tra số nguyên tố
B2: Viết hàm liệt kê số nguyên tố
B3: Viết form để nhập số giới hạn n mà ta muốn hiển thị và viết code xử lý dữ liệu phía trên form
B4: Run…
——————————————————————————————————————
Bước vào giải quyết bài toán nào:
B1: Hàm kiểm tra số nguyên tố
function kt_ngto($n) { $kt = 1; for($i=2;$i<=sqrt($n);$i++) { if($n%$i==0 && $n>2) { $kt = 0; } } return $kt; } /* Giải thích đoạn code trên: -Số nguyên tố là những số chỉ chia hết cho 1 và chính nó, vậy thuật toán đơn giản là chúng ta kiểm tra tất cả các số trong khoảng từ 2 đến căn bậc 2 của số cần kiểm tra (số n). -Nếu số n chia hết cho một trong những số trong khoảng trên thì n không phải là số nguyên tố => trả về giá trị biến kiểm tra $kt = 0; -Ngược lại là số nguyên tố => $kt = 1; */
B2: Hàm liệt kê các số nguyên tố
function lk_ngto($n) { $i=2; $dem =0; (string) $ketqua = ""; while($dem<$n) { if(kt_ngto($i)==1) { $ketqua .= $i." "; $dem++; } $i++; } return $ketqua; } /* Giải thích: -Khời tạo biến $i là một số để kiểm tra có phải là số nguyên tố hay không, bắt đầu từ 2 -Khởi tạo biến $dem để đếm số lần thực hiện vòng lặp đến $n lần, bắt đầu đếm từ 1 -Và khởi tạo biến $ketqua để lưu chuỗi danh sách số nguyên tố mà ta thu được -Thuật toán đơn giản là dùng vòng lặp while kiểm tra biến $dem bao giờ chạy đến bằng $n thì dừng lại. Bên trong while kiểm tra số $i có phải là số nguyên tố hay không, dùng hàm kt_ngto() ở trên. +Nếu $i là số nguyên tố thì gán $i vào chuỗi danh sách kết quả, lưu vào $ketqua, sau đó tăng biến đếm lên 1 giá trị. +Tiếp theo ra ngoài vòng kiểm tra (if) tăng $i lên 1 giá trị. +Và cuối cùng trả về chuỗi $ketqua. */
B3: Viết form để nhập số giới hạn n mà ta muốn hiển thị và viết code xử lý dữ liệu phía trên form
<?php if(isset($_POST["ok"])) { $n = $_POST["n"]; $ketqua = lk_ngto($n); echo $ketqua; } ?> <form action="đường dẫn đến file code của bạn" method="post" enctype="multipart/form-data"> Nhập n: <input type="text" name="n" value="" /> <input type="submit" value="Liệt Kê" name="ok" /> </form> /* Giải thích: -Ta sẽ tạo một form để nhập yêu cầu n số nguyên tố mà ta muốn hiển thị, chú ý trong dấu ngoặc kép chỗ action là đường dẫn đến file code của bạn, ví dụ của mình là n-so-ng-to-dautien.php -Thẻ input type="text" là để nhập n, giá trị name="n" -Thẻ input type="submit" là nút nhấn để yêu cầu liệt kê, giá trị name="ok" -Sau khi nhấn nút liệt kê, đoạn code php ở bên trên form sẽ kiểm tra xem bạn đã nhấn nút liệt kê hay chưa (dùng hàm isset). Nếu tồn tại $_POST["ok"] nghĩa là bạn đã nhấn thì sẽ lấy giá trị $_POST["n"] gửi lên từ thẻ input và gán vào biến $n. -Chạy hàm lk_ngto() đã viết ở trên và gán kết quả trả về vào danh sách số ngtố $ketqua -Cuối cùng là hiển thị ra danh sách: echo $ketqua; */
B4: Chạy bài làm và nhận kết quả thôi =)), bạn nào muốn giao diện ứng dụng như hình ở trên thì có thể dowload source code của mình về tham khảo.
Source code: Github: N Số Nguyên Tố Đầu Tiên
Done.
Nếu có gì thắc mắc hoặc cần hỏi, bạn có thể comment dưới Bài Viết này hoặc Liên Hệ với mình, mình sẽ trả lời bạn sớm nhất. Cảm ơn các bạn và hẹn gặp lại các bạn ở những bài hướng dẫn tiếp theo.