Tin học [Ôn thi hsg lớp 8] Một số thuật toán + chương trình con

ĐứcNhật!

Học sinh tiêu biểu
Thành viên
17 Tháng mười một 2017
1,525
3,788
529
Quảng Nam
Trung Học Phổ Thông Chuyên Nguyễn Bỉnh Khiêm
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

1. Thuật toán kiểm tra số nguyên tố:
Thuật toán dựa trên ý tưởng: nếu n>1 không chia hết cho số nguyên nào trong tất cả các số từ 2 đến [tex]\sqrt{n}[/tex] thì n là số nguyên tố. Do đó ta sẽ kiểm tra tất cả các số nguyên từ 2 đến có round(sqrt(n)), nếu n không chia hết cho số nào trong đó thì n là số nguyên tố.
Nếu thấy biểu thức round(sqrt(n)) khó viết thì ta có thể kiểm tra từ 2 đến n div 2.
Hàm kiểm tra nguyên tố nhận vào một số nguyên n và trả lại kết quả là true (đúng) nếu là nguyên tố và false (sai) nếu n không là số nguyên tố
Function ngto(n:integer):boolean;
Var i:integer;
Begin
ngto:=false;
If n<2 then exit;
For i:=2 to trunc(sqrt(n)) do
If n mod i = 0 then exit;
ngto:=true;​
End;
2. Thuật toán tính tổng các chữ số của một số nguyên:
Ý tưởng là ta chia số đó cho 10 lấy dư (mod) thì được chữ số hàng đơn vị, và lấy số đó div 10 thì sẽ được phần còn lại. Do đó sẽ chia liên tục cho đến khi không chia được nữa (số đó bằng 0), mỗi lần chia thì được một chữ số và ta cộng dồn chữ số đó vào tổng.
Function tongcs(n:integer):integer;
Var s: integer;
Begin
s:=0;
While n <> 0 do begin
s:=s+n mod 10;
n:=n div 10;​
End;
tongcs:=s;​
End;
3. Thuật toán tính Ước chung lớn nhất:
Ý tưởng của thuật toán là UCLN của 2 số a, b cũng là UCLN của 2 số b và a mod b, vậy ta sẽ đổi a là b, b là a mod b cho đến khi b bằng 0. Khi đó UCLN là a
Function UCLN(a,n:integer):integer;
Var r:integer;
Begin
While b<>0 do begin
r:=a mod b;
a:=b;
b:=r;​
End;
UCLN:=a;​
End;
Hôm nay 3 bài thôi :33 Mai mình sẽ đăng thêm 3 bài nữa :33 Mọi người tag bạn bè vào ủng hộ mình với :33
Nếu bạn không thi học sinh giỏi thì lên lớp 9, 10, 11, 12 cũng học thôi :33 Nên xem từ bây giờ và tìm hiểu hongg phí đâu :33
Chúc mọi người buổi tối tốt lành <3 :MIM41
@phamkimcu0ng @Bùi Thị Diệu Linh @Mart Hugon @Hồ Nhi @Asuna Yuuki @The Joker
 
Top Bottom