Thuật toán Pollard's Rho phân tích một số ra thừa số nguyên tố.
BÀI TOÁN
Tìm ước nguyên tố lớn nhất của số
.
HƯỚNG DẪN GIẢI
Trước hết ta tìm ƯCLN của ba số 2177,3421,5287 : GCD(GCD(2177,3421),5287):
Bấm qT. 2 lần , ta có một thừa số của A là 3117, thừa số còn lại là. Nếu ta bấm qn3 kết quả , thừa số thứ hai là 72.
Sau đây ta phân tích số 8788763 ra thừa số nguyên tố.
THUẬT TOÁN POLLARD's RHO. Thuật toán này dựa vào hàm số "giả ngẫu nhiên"
, trong đó z là số cần phân tích ra thừa số nguyên tố.
Xây dựng hai dãy số quy nạp (an) và (bn) như sau:
Sau mỗi bước ta tính \text{GCD}(|a_n-b_n|,z) GCD(∣an−bn∣,z). Đến một bước nào đó mà GCD(∣an−bn∣,z) lớn hơn 1 và nhỏ hơn z thì GCD(∣an−bn∣,z) đó là thừa số nguyên tố đầu tiên, để tìm các thừa số nguyên tố còn lại ta thực hiện phép chia z cho thừa số nguyên tố đó.
Bấm ' (VARIABLES) gán 8788763 vào biến nhớ z . Bấm Q3(chỗ bị khuất là zx2+1) .
Bấm w4 mở một bảng tính . Nhập số 2 vào A1 và B1 . Đưa con trỏ tới A2 bấm I1 điền công thức . Đưa con trỏ tới B2 bấm I1 điền công thức .
Đưa con trỏ tới C1 bấm I1 điền công thức (chỗ bị khuất là −B1),z)). Để nhập GCD ta bấm qTR7, để nhập Abs (GTTĐ) ta bấm ở ngoài bàn phím qO. Kết quả .
Duyệt cột C tới dòng 17 ta có thừa số nguyên tố 1697. Thừa số còn lại 5179 là số nguyên tố.
Vậy
Do đó ước nguyên tố lớn nhất cần tìm là số 5179.
Thuật toán Pollard's rho do Pollard phát minh năm 1975, nó nổi bật nhờ tốc độ tìm ước số lớn và lượng bộ nhớ cực kỳ nhỏ.
Khi xét dãy với plà một ước nguyên tố của n , theo nguyên lý Dirichlet dãy này sẽ tuần hoàn sau một thời gian. Phần
"đuôi" trước khi vào chu kỳ cộng với phần "vòng lặp" tạo thành hình dạng
giống chữ cái Hy Lạp ρ (rho) — đó là lý do thuật toán mang tên này.
Thuật toán Pollard's rho từng là chủ đề báo cáo khoa học chuyên đề vềPollard's rho Algorithmdiễn ra vào lúc 11:00 đến 12:00 ngày 26/06/2017 tại Viện Toán cao cấp (VIASM), do báo cáo viên TS Lâm Thùy Dương (ĐHSP - Đại học Thái Nguyên) trình bày.
BÀI TẬP TƯƠNG TỰ.
Phân tích số 123456789 ra thừa số nguyên tố.
.
Khi chạy thuật toán Pollard 's rho cho đến dòng thứ 30 vẫn chưa xuất thừa số nguyên tố đầu tiên. Để chạy tiếp ta gán A30 và B30 lần lượt vào x và y. Sau đó chép đè x và y lần lượt lên A1 và B1. Duyệt lại cột C ta tìm được thừa số nguyên tố.