Thuật toán này mình tìm được trên mạng,có một số chỗ chưa hiểu lắm.Pác nào pro chỉ giáo.
PROGRAM Songuyento;
USES crt;
VAR number:INTEGER;
trigger : BOOLEAN;
FUNCTION Prime(X:INTEGER):BOOLEAN;
VAR i:INTEGER;
tf:BOOLEAN;
BEGIN
i:=1;
tf:=FALSE;
IF (x=1) OR (x=2)
THEN tf:=FALSE
ELSE REPEAT
i:=i+1;
IF (x MOD i) = 0
THEN tf:=TRUE;
UNTIL (i=x-1) OR (tf=TRUE);
prime:=tf;
END;
PROCEDURE proc_prime(n:INTEGER; VAR tf:BOOLEAN);
VAR i : INTEGER;
BEGIN
i:=1;
IF (n=1) OR (n=2) THEN
tf := TRUE
ELSE
REPEAT
i:=1+i;
IF (n MOD i) = 0
THEN tf := FALSE
ELSE tf:=TRUE;
UNTIL (i=n-1) OR (tf=FALSE);
END;
BEGIN
clrscr;
writeln('Nhap so can kiem tra');
readln(number);
IF prime(number)=FALSE THEN Writeln('So nay la so nguyen to')
ELSE writeln('So nay khong phai la so nguyen to');
proc_prime(number, trigger);
IF trigger = FALSE THEN writeln('So nay khong phai la so nguyen to')
ELSE writeln('So nay la so nguyen to');
readln;
END.