Sai ở phần function thôi
Vì kiểm tra tính nguyên tố mà bạn lại cho i chạy từ 1 đến n xong còn kiểm tra tính chẵn lẻ của i nữa (i mod 2 = 0) nên nó bị sai
Function mới: (theo phong cách viết hoa để bạn copy lại vào bài luôn :))
Function ktnt (n: Integer): Boolean;
Var i,d:Integer;
Begin
d:=0;
For i:=1 to n do
If n mod i=0 then
d:=d+1;
If d=2 then
ktnt:=true
Else
ktnt:=false;
End;