Trang chủ Tin Học Lớp 10 Mọi người cho mình hỏi, tại sao ở dòng số...

Mọi người cho mình hỏi, tại sao ở dòng số 8 lại cần n % (i + 2) == 0 vậy ạ?8 9 10 11 if (n> 1) cout << n; Q Tim... 1.3. Ngây thơ 2.5 Để ý nếu số nguyên tố n lẻ

Câu hỏi :

Mọi người cho mình hỏi, tại sao ở dòng số 8 lại cần n % (i + 2) == 0 vậy ạ?

image

Mọi người cho mình hỏi, tại sao ở dòng số 8 lại cần n % (i + 2) == 0 vậy ạ?8 9 10 11 if (n> 1) cout << n; Q Tim... 1.3. Ngây thơ 2.5 Để ý nếu số nguyên tố n lẻ

Lời giải 1 :

Tối ưu hóa vòng lặp:

-Thay vì kiểm tra tất cả các số lẻ từ 5 đến căn bậc hai của n, ta chỉ cần kiểm tra các số có dạng 6k + 1 và 6k + 5 (với k là số nguyên không âm).

-Bất kỳ số nguyên tố nào lớn hơn 3 đều có dạng 6k ± 1. Điều này có thể chứng minh bằng cách xét các số chia cho 6 dư 0, 1, 2, 3, 4, 5.

-Bằng cách này, ta loại bỏ được một số lượng lớn các số không cần thiết phải kiểm tra, giúp tăng hiệu suất của thuật toán.

=>Việc sử dụng n % (i + 2) trong đoạn mã này là một kỹ thuật tối ưu hóa để kiểm tra tính nguyên tố của một số. Bằng cách chỉ kiểm tra các số có dạng 6k ± 1, thuật toán giảm được số lượng phép chia cần thực hiện, từ đó tăng tốc độ kiểm tra.

`\color{rainbow}{\text{PG}}`


Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 10

Lớp 10 - Năm đầu tiên ở cấp trung học phổ thông, chúng ta sẽ có nhiều bạn bè mới đến từ những nơi khác nhau. Ngôi trường mới, xa nhà hơn, mở ra một thế giới mới với nhiều điều thú vị. Hãy mở lòng đón nhận và tận hưởng những trải nghiệm mới!

Nguồn :

sưu tập

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK