Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
668,19 KB
Nội dung
Chuyên đề: Các thuật toán số học GV: Nguyễn Thị Phượng CÁC THUẬT TOÁN SỐ HỌC I SỐ NGUYÊN TỐ Đinh nghĩa: Một số tự nhiên p (p > 1) số nguyên tố p có hai ước số p Ví dụ số nguyên tố: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29… Kiểm tra tính nguyên tố Để kiểm tra số nguyên dương n (n > 1) có số nguyên tố hay không, ta kiểm tra xem có tơn ftại số ngun k ( k n 1) mà k ước n ( n chia hết cho k ) n số nguyên tố, ngược lại n số nguyên tố Tuy nhiên, n ( n > 1) khơng phải số ngun tố, ta ln tách n k1 k2 mà k1 k2 n Vì k1 k2 nên k1 k1 k1 k2 n k12 n hay k1 n Do việc kiểm tra từ đến n - không cần thiết, mà ta cần kiểm tra k từ đến n Bài 1: Nhập vào số nguyên dương, kiểm tra xem có phải số ngun tố hay khơng? Lời giải: Program SO_NGUYEN_TO; Uses crt; Var i, n: integer; Begin Clrscr; Writeln('KIEM TRA SO NGUYEN TO:'); Write ('Nhap so can kiem tra n = '); If (n=0) or (n=1) then Writeln(n,' nguyen to') Else Begin i:=1; Repeat i:= i+1; readln(n); khong phai la so Chuyên đề: Các thuật toán số học GV: Nguyễn Thị Phượng Until (n mod i= 0) or (i>sqrt(n)); If i>sqrt(n) then Writeln (n,' la so nguyen to') Else Writeln (n,' khong phai la so nguyen to'); End; Readln; End Nhận xét: Chương trình tiến hành kiểm tra số nguyên k đoạn 2, n Để cải tiến cần giảm thiểu số số cần kiểm tra Ta có nhận xét, để kiểm tra số nguyên dương n (n > 1) có số ngun tố khơng, ta kiểm tra xem có tồn số nguyên tố k ( k n ) mà k ước n n khơng phải số ngun tố, cịn ngược lại n số ngun tố Thay kiểm tra số k số nguyên tố ta kiểm tra số k có tính chất giống với tính chất số nguyên tố, sử dụng hai tính chất đơn giản sau số nguyên tố: 1, Trừ số số nguyên tố số lẻ 2, Trừ số 2, số số nguyên tố có dạng 6k ( số có dạng 6k chia hết cho 2, số có dạng 6k chia hết cho 3) Liệt kê số nguyên tố đoạn 1, N Phương pháp: Ta thử số m đoạn 1, N , kiểm tra tính nguyên tố m Bài 2: In số nguyên tố nhỏ N (N số nguyên không âm nhập từ bàn phím) Program CAC_SO_NGUYEN_TO; Uses crt; Var N, i, t: integer; Begin Clrscr; Writeln('IN RA CAC SO NGUYEN TO =1): '); readln(n); for i:=1 to n begin j:=i; while j mod = begin j:=j div 5; count:=count+1; end; end; write(' So chu so cuoi cua ',n,'! la: ',count); readln; end III Số Fibonacci Số Fibonacci xác định cơng thức sau: 11 Chun đề: Các thuật tốn số học GV: Nguyễn Thị Phượng F0 F1 F F F n 1 n2 n Số Fibonacci đáp án toán: Bài toán cổ việc sinh sản cặp thỏ sau: - Các thỏ không chết; - Hai tháng sau đời, cặp thỏ sinh cặp thỏ (một đực, cái); - Khi sinh tháng tiếp tho chúng lại sinh cặp Giả sử từ đầu tháng có cặp đời đến tháng thứ n có cặp Ví dụ: n=5, ta thấy: Giữa tháng thứ 1: có cặp (chính cặp ban đầu) Giữa tháng thứ 2: có cặp (vì cặp ban đầu chưa đẻ) Giữa tháng thứ 3: cặp (cặp ban đầu đẻ thêm cặp con) Giữa tháng thứ 4: cặp (cặp ban đầu tiếp tục đẻ) Giữa tháng thứ 5: cặp (cặp ban đầu đẻ thêm cặp cặp sinh tháng thứ đẻ thêm cặp) Bài 7: Tính số Fibonacci thứ n phương pháp lặp sử dụng công thức với n F0 0, F1 Fn Fn1 Fn2 Chương trình cụ thể sau: program fibonacci; uses crt; var n: longint; function Fibo(n:longint): longint; var fi_1, fi_2,fi,i: longint; Begin if n= dem[main] then main := i; assign(f, fo); rewrite(f); writeln(f, main, ' ', dem[main]); close(f); End; Begin doc; ghi; End Bài 5: TAM GIÁC SỐ (Đề thi HSG Hà Tây n m 2006) 8 -2 Hình mơ tả tam giác số có số hàng N=5 Đi từ đỉnh (số 7) đến đáy tam giác đường gấp khúc, bước từ số hàng xuống hai số đứng kề bên phải hay bên trái hàng dưới, tính tích số đường lại ta tích Ví dụ: Đường có tích S=1344, đường 7 có tích S=735 u cầu: Cho tam giác số, tìm tích đường có tích lớn Dữ liệu vào từ file v n TGS.INP: Dòng chứa số nguyên n (0