Cấu hình nguyên tố

Xem dạng PDF

Gửi bài giải

Điểm: 1,50 (OI)
Giới hạn thời gian: 0.05s
Giới hạn bộ nhớ: 1004M
Input: stdin
Output: stdout

Nguồn bài:
Vũ Huy Trường :))
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Anh ~T~ được sếp là chị ~B~ giao cho một hệ thống dữ liệu ~TYB~ sơ khai. Hệ thống này sẽ trả về True hay False tùy xem số nguyên dương ~X~ được truyền vào có phải là một số ~\text{PrimeBit}~ hay không.

Một số được gọi là ~\text{PrimeBit}~ nếu thỏa mãn:

  • Biểu diễn ~X~ dưới dạng xâu nhị phân (không có các bit 0 vô nghĩa ở đầu).
  • Mọi đoạn bit 1 liên tiếp đều có độ dài là một số nguyên tố.
  • Ví dụ: 24 là một số ~\text{PrimeBit}~ vì ~24_{(10)} = 110111_{(2)}~ có hai đoạn bit 1 liên tiếp là ~[11]~ và ~[111]~ đều có độ dài tương ứng là 2 và 3 (là các số nguyên tố). Còn 23 không phải là số ~\text{PrimeBit}~ vì ~23_{(10)} = 10111_{(2)}~ có đoạn bit 1 liên tiếp đầu tiên là ~[1]~ có độ dài là 1 (không phải số nguyên tố).

Từ hệ thống dữ liệu ~TYB~ ở trên, anh ~T~ đã phát triển thêm khả năng: với một cấu hình bộ dữ liệu ~[L, R]~, hệ thống sẽ trả về số lượng số ~X~ là số ~\text{PrimeBit}~ thỏa mãn ~L \le X \le R~ theo modulo ~10^9 + 7~.

Hiện tại có ~N~ cấu hình bộ dữ liệu ~[L_i, R_i]~ cần xử lí. Nhiệm vụ của bạn là đưa ra kết quả cho mỗi cấu hình bộ dữ liệu ~[L_i, R_i]~.

Dữ liệu vào
  • Dòng đầu tiên chứa số nguyên dương ~N~.
  • ~N~ dòng tiếp theo, dòng thứ ~i~ chứa hai số nguyên dương ~L_i~ và ~R_i~.
Dữ liệu ra
  • In ra ~N~ dòng, dòng thứ ~i~ chứa một số nguyên duy nhất là số lượng số ~\text{PrimeBit}~ tìm được theo modulo ~10^9 + 7~.
Giới hạn
  • ~1 \le N \le 100~.
  • ~1 \le L_i \le R_i \le 10^{250}~ với mọi ~i = 1, 2, \dots, N~.
Subtask
  • Subtask 1 (30% số điểm): ~1 \le L_i \le R_i \le 10^6~ với mọi ~i = 1, 2, \dots, N~.
  • Subtask 2 (30% số điểm): ~10^9 \le L_i \le R_i \le 10^{18}~ với mọi ~i = 1, 2, \dots, N~.
  • Subtask 3 (40% số điểm): Không có ràng buộc gì thêm.
Ví dụ
Sample Input
3
1 10
20 100
1000 2000
Sample Output
3
13
87
Giải thích
  • Trong ví dụ thứ nhất, cấu hình bộ dữ liệu ~[1, 10]~ gồm có 3 số ~\text{PrimeBit}~ là 3, 6, 9.
  • Trong ví dụ thứ hai, cấu hình bộ dữ liệu ~[20, 100]~ gồm có 13 số ~\text{PrimeBit}~ là 24, 27, 28, 31, 48, 51, 54, 55, 56, 59, 62, 96, 99.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.