Sàng phân đoạn
Xem dưới dạng PDF
Gửi bài giải
Điểm:
1
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Cho hai số nguyên dương L và R, hãy đếm số lượng số nguyên tố trong đoạn [L, R].
Với R có thể lên đến 10^12, không thể sàng Eratosthenes đến R. Thay vào đó, sử dụng sàng phân đoạn (segmented sieve):
- Sàng các số nguyên tố đến √R (tối đa 10^6).
- Dùng các số nguyên tố đó để đánh dấu bội số trong đoạn [L, R].
Đầu vào
Một dòng duy nhất chứa hai số nguyên L và R (1 ≤ L ≤ R ≤ 10^12, R - L ≤ 10^6).
Đầu ra
Số lượng số nguyên tố trong đoạn [L, R].
Ví dụ
Input:
10 30
Output:
6
Giải thích
Các số nguyên tố: 11, 13, 17, 19, 23, 29.
Nhận xét