Chương trình khá dài nhưng bù lại chương trình sẽ chạy nhanh hơn.
program kiemtraso;
uses crt;
var n,i,s:integer;
kt:boolean;
begin
clrscr;
repeat
write('Nhap n: '); readln(n);
if (n<1000) or (n>9999) then write('N phai co 4 chu so');
until (n>=1000) and (n<=9999);
if n mod 2=0 then writeln(n,' la so chan')
else writeln(n,' la so le');
kt:=true;
for i:=2 to trunc(sqrt(n)) do
if n mod i=0 then
begin
kt:=false;
break;
end;
if kt=true then writeln(n,' la so nguyen to')
else writeln(n,' khong phai so nguyen to');
s:=0;
for i:=1 to n div 2 do
if n mod i=0 then s:=s+i;
if s=n then writeln(n,' la so hoan hao')
else writeln(n,' khong la so hoan hao');
readln
end.
Cho mình ctlhn nha.