Thuật toán kiểm định theo √

Một phần của tài liệu Testing is intended to show that a program does what it is intended to do and to dis (Trang 36 - 38)

CHƢƠNG 2 CÁC THUẬT TOÁN KIỂM ĐỊNH SỐ NGUYÊN TỐ

2.2 Thuật toán kiểm định theo √

Thuật to n kiểm ịnh tính nguy n t một s nguy n dƣơng n d tr tiếp v o ịnh nghĩ v một v i tính hất ơ bản s nguy n t Cụ thể nhƣ s u [7]:

NT1 S t nhi n n l nguy n t khi v hỉ khi n kh ng ó ƣớ kh 1

nhỏ hơn nó

NT2 S t nhi n n l nguy n t khi v hỉ khi n kh ng ó ƣớ kh 1

nhỏ hơn ho b ng √ .

NT3 S t nhi n n l nguy n t khi v hỉ khi n kh ng ó ƣớ nguy n

t nhỏ hơn ho b ng √ .

NT4 S t nhi n n l nguy n t khi v hỉ khi n = 2 ho n lẻ v kh ng ó ƣớ nguy n t nhỏ hơn ho b ng √ .

Thuật to n ơ bản v biến thể nó u òi hỏi √ phép to n hi dƣ Thuật to n thƣờng ƣợ d ng khi kiểm ịnh s kh ng lớn ( ó khoảng t i 10 hữ s thập ph n)

Trong thuật to n, h m Even(n) ho gi trị true nếu n l s hẵn Từ khó step 2 ho biết bƣớ t ng biến duyệt l 2 s u mỗi lần

Algorithm Prime(n)

Ch n ng: Kiểm ịnh tính nguy n t c a s t nhi n n

Input: S t nhi n n > 1 Output: true nếu n nguy n t f lse: ngo i r Method

if n < 2 return false endif; if n = 2 return true endif; if Even(n) return false endif;

for d := 3 to ⌊√ ⌋ step 2 do if (n mod d) = 0 then return false endif endfor return true

Độ phức tạp tính toán

√ phép hi dƣ

Giả sử t ó p = (p1, …, pk) l d nh s h k > 1 s nguy n t ầu ti n

trong dãy s nguy n t D v o d nh s h n y t ó thể kiểm ịnh tính nguy n t s từ pk + 1 ến pk2 theo thuật to n Prime2 s u y

Algorithm Prime2(p, k, n) Ch n ng: Kiểm ịnh tính nguy n t c a s t nhi n n Input:  p - d nh s h k > 1 s nguy n t ầu ti n  S t nhi n n > 1

Output: true nếu n nguy n t f lse: ngo i r Method

for each e in p with e ⌊√ ⌋ do

if n mod e = 0 then return false endif endfor return true EndPrime2. Thí dụ

Giả sử t ã biết k = 7 s nguy n t ầu ti n p[1..7] = (2, 3, 5, 7, 11, 13, 17)

T ó thể kiểm tr tính nguy n t s từ p[7]+2 = 19 ến (p[7])2

 1 = 2891 theo thuật to n Prime2 nhƣ s u Giả sử t họn s n = 103 ể kiểm tr

T ó ⌊√ ⌋ = 10, do ó hỉ ần kiểm tr xem 103 ó ƣớ nguy n t n o trong s 2, 3, 5, 7 h y kh ng T ó

103 mod 2 = 1  0 103 mod 3 = 1  0 103 mod 5 = 3  0 103 mod 7 = 5  0

Vậy 103 l s nguy n t

Độ phức tạp tính toán

√ phép hi dƣ.

Một phần của tài liệu Testing is intended to show that a program does what it is intended to do and to dis (Trang 36 - 38)

Tải bản đầy đủ (PDF)

(92 trang)