32.9. Nếu n là hợp số thì dễ thấy n phải có ước số nguyên tố nhỏ hơn hoặc bằng căn bậc hai của n....

Câu hỏi:

32.9. Nếu n là hợp số thì dễ thấy n phải có ước số nguyên tố nhỏ hơn hoặc bằng căn bậc hai của n. Viết chương trình tối ưu hoá hơn nhiệm vụ 1, bài 31, theo cách sau: để tìm ước số nguyên nhỏ nhất chỉ cần tìm trong các số 2, 3... Nếu trong dãy trên không tìm thấy ước của n thì kết luận ngay n là số nguyên tố.

Câu trả lời:
Người trả lời: GV. Đỗ Đăng Đạt
Câu trả lời cho câu hỏi trên có thể được viết như sau:

Để giải quyết bài toán trên, chúng ta cần nhập số tự nhiên n từ người dùng. Sau đó, chúng ta sẽ thiết lập m và k bằng 2, khởi tạo một danh sách NT rỗng để lưu trữ các ước số nguyên tố của n. Tiếp theo, chúng ta sẽ sử dụng một vòng lặp while để tìm ước số nguyên tố nhỏ nhất của n. Trong khi m vẫn lớn hơn 1, chúng ta kiểm tra xem có ước số k nào của m không phải là ước số nguyên tố hay không. Nếu k nhỏ hơn căn bậc hai của m, ta tăng k lên một đơn vị. Nếu không, ta gán k bằng m và thêm k vào danh sách NT. Sau đó, ta chia m cho k để giảm số cần kiểm tra. Cuối cùng, ta kiểm tra kích thước của danh sách NT để xác định n là số nguyên tố, hợp số hay số nguyên tố. Nếu n là số nguyên tố, ta sẽ in ra dòng thông báo "n là số nguyên tố". Nếu n là hợp số, ta sẽ in ra dãy phân tích n thành tích các ước số nguyên tố.

Đây là cách làm tối ưu hơn nhiệm vụ ban đầu trên.
Bình luận (0)
Nhấn vào đây để đánh giá
Thông tin người gửi
0.12708 sec| 2202.523 kb