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 LR, 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):

  1. Sàng các số nguyên tố đến √R (tối đa 10^6).
  2. 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 LR (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

Không có ý kiến tại thời điểm này.