Tin học Số nguyên tố

Vuio Vuio

Học sinh
Thành viên
11 Tháng một 2019
10
7
21
22
Đồng Nai
THPT Vĩnh Cửu
Bạn cần hiểu hàm Exit() sẽ trả về giá trị và thoát ngay khỏi hàm luôn.
Trong trường hợp của bạn thì biến i chỉ chạy đến 2 là bị thoát rồi do điều kiện đúng hay sai đều gặp hàm exit cả.
Cách sửa: Bỏ phần else đi, thêm dấu chấm phẩy thay vào đó.
Mã:
for i := 2 to trunc(sqrt(n)) do
    if (n mod i = 0) then exit(false);
exit(true);
Nếu i chia hết thì có thể thoát ra luôn, không cần kiểm tra tiếp, nên có thể exit(false) được. Còn exit(true) chỉ đặt ở cuối hàm thôi, vì nếu không chia hết một lần phải kiểm tra tiếp nữa.
 
  • Like
Reactions: Chu Minh Hiền

Chu Minh Hiền

Học sinh tiến bộ
Thành viên
3 Tháng ba 2017
704
312
229
19
~Thế Giới Phép Thuật ~
đề đầy đủ là gì thế bạn
Kiểm tra một số có phải là số nguyên tố không. Đưa ra số nguyên tố nhỏ nhất lớn hơn n
Bạn cần hiểu hàm Exit() sẽ trả về giá trị và thoát ngay khỏi hàm luôn.
Trong trường hợp của bạn thì biến i chỉ chạy đến 2 là bị thoát rồi do điều kiện đúng hay sai đều gặp hàm exit cả.
Cách sửa: Bỏ phần else đi, thêm dấu chấm phẩy thay vào đó.
Mã:
for i := 2 to trunc(sqrt(n)) do
    if (n mod i = 0) then exit(false);
exit(true);
Nếu i chia hết thì có thể thoát ra luôn, không cần kiểm tra tiếp, nên có thể exit(false) được. Còn exit(true) chỉ đặt ở cuối hàm thôi, vì nếu không chia hết một lần phải kiểm tra tiếp nữa.
Mk sửa được rồi cảm ơn bạn nhiều !
 
  • Like
Reactions: Vuio Vuio
Top Bottom