Professional Documents
Culture Documents
Function TCS(K:Longint):Byte;
Var t:Byte;
Begin
TCS:=0; t:=0;
While K>0 do
begin
T:=T+ K mod 10;
K:=K Div 10;
end;
TCS:=T;
End;
Function SCP(K:Longint):Boolean;
Begin
SCP:=False;
If K>0 then
If sqrt(k) = trunc(sqrt(k)) then
exit(True);
End;
Function SNT(K:Longint):Boolean;
Var z:longint;
Begin
SNT:=True;
If K<2 then exit(False);
For z:=2 to Trunc(Sqrt(K)) do
If K mod z = 0 then
exit(False);
End;
3
3.1 Thuật toán kiểm tra số siêu nguyên tố:
Sử dụng hàm kiểm tra số nguyên tố
Function SSNT(K:Longint):Boolean;
Var z:longint;
Begin
SSNT:=False;
While SNT(K) = True do
K:=K Div 10;
If K = 0 then SSNT:=True;
End;
Function SongTo(K:Longint):Boolean;
Var z:longint;
Begin
SongTo:=False;
If (SNT(K)=True) and (SNT(TCS(K))=True) then
SongTo:=True;
End;
Procedure PTTS(K:Longint);
Var z:Longint;
Begin
z:=2;
if SNT(K)=true then
write(K)
else
while K>1 do
if K mod z=0 then
begin
write(z, ' ' );
K:=K div z;
end
else
z:=z+1;
End;
4
4. Thuật toán tìm UCLN, BCNN (Giải thuật Euclid):
a. UCLN:
Function UCLN(x,y:longint):longint;
Var r:longint;
Begin
while y<>0 do
begin
r:=x mod y;
x:=y;
y:=r;
end;
UCLN:=x;
End;
b. BCNN: Sau khi có UCLN thì BCNN được tìm như sau:
Function BCNN(x,y:longint):longint;
Begin
BCNN:=x*y div UCLN(x,y);
End;
5
7. Thuật toán chuyển N từ hệ thập phân sang hệ nhị phân:
Function NP(K:Longint):String;
Var S,sd:string;
Begin
S:='';
while K>0 do
begin
str(K mod 2,sd);
S:=Sd+S;
K:= K div 2;
end;
NP:=S;
End;
8. Thuật toán sắp xếp dãy số tăng dần (Sắp xếp nổi bọt):
Procedure Sapxep;
Var i,j,temp:longint;
Begin
For i:=1 to N-1 do
For j:=i+1 to N do
If A[i]>A[j] Then
begin
Temp:=A[i];
A[i]:=A[j];
A[j]:=Temp;
end;
End;
Procedure Locso;
Var z,d:longint;
Begin
d:=0;
For z:=1 to N do
If SCP(A[z])=true then
Begin
d:=d+1;
B[d]:=A[z];
End;
End;
6
10. Thuật toán kiểm tra năm nhuận:
Function Nhuan(Y:integer):Boolean;
Begin
Nhuan:=False;
If ((Y mod 4=0) and (Y mod 100<>0)) or (Y mod 400=0) then
Nhuan:=True;
End;
10.1:Thuật toán tính ngày theo tháng, năm:
Kết hợp hàm kiểm tra năm nhuận
Function Ngay(D:integer;Y:integer):integer;
Begin
Case D of
1,3,5,7,8,10,12:Ngay:=31;
4,6,9,11:Ngay:=30;
2: If Nhuan(Y)=True then Ngay:=29 Else Ngay:=28;
End;
End;
10.2: Thuật toán kiểm tra tính hợp lệ của ngày tháng năm (D,M,Y)
Function KTDAY(D,M,Y:integer):Boolean;
Begin
KTDAY:=False;
if Y>0 then
if (M<=12) and (M >=1) then
if (ngay(M,Y)>=D) and (D>0) then KTDAY:=True;
End;
Function MaxSL(A,B:string):String;
Var t:string;
Begin
while length(A)>length(B) do B:='0'+B;
while length(A)<length(B) do A:='0'+A;
t:=A;
If t<B then t:=B;
MaxSL:=t;
End;
Function CSL(A,B:string):String;
Var T,t1:String;
i, j, c, x, y, nho, z, k:integer;
Begin
T:='';
nho:=0;
while length(A)>length(B) do B:='0'+B;
while length(A)<length(B) do A:='0'+A;
For i:=length(A) downto 1 do
begin
val(A[i],x,c);
val(B[i],y,c);
z:=x+y+nho;
nho:= z div 10;
k:= z mod 10;
str(k,t1);
T:=t1+T;
end;
if nho=1 then
T:='1'+T;
CSL:=T;
End;