BỘI CHUNG NHỎ NHẤT

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1600 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Trong số học, bội số chung nhỏ nhất (hay còn gọi tắt là bội chung nhỏ nhất), viết tắt là \(BCNN\) (tiếng Việt) hay \(LCM\) (Least Commmon Multiple/ Lowest Common Multiple - Tiếng Anh) của hai số nguyên \(x\)\(y\) là số nguyên dương nhỏ nhất chia hết cho cả \(x\)\(y\).
Yêu cầu: Cho hai số nguyên dương \(a\)\(b\) \((a \leq b)\), xét số có dạng \(a \times (a + 1) \times ... \times b\). Hãy đếm có bao nhiêu cặp số nguyên \(x\), \(y\) sao cho \(LCM(x,y)\) \(= a \times (a + 1) \times...\times b\).

Input

  • Dòng đầu ghi số nguyên dương \(T\) \((T \leq 10)\) - là số lượng bộ dữ liệu.
  • \(T\) dòng tiếp theo, mỗi dòng chứa hai số nguyên dương \(a,b\) \((1 \leq a \leq b \leq 10^6)\).

Output

  • In ra \(T\) dòng, mỗi dòng là số cặp số nguyên dương \((x,y)\) sao cho \(LCM(x,y)\)\(= a \times (a + 1) \times...\times b\). Vì kết quả có thể rất lớn nên bạn chỉ cần in ra phần dư của nó khi chia cho \(10^9 + 7\).

Example

Test 1

Input
2 
2 3
5 5
Output
9
3
Note
  • Trong bộ 1: \((1,6),(6,1),(2,6),(6,2)(3,6),(6,3),(2,3),(3,2),(6,6)\).
  • Trong bộ 2: \((1,5),(5,1),(5,5)\).

Ràng buộc

  • Subtask \(1\) (\(30\%\) số điểm): Có \((1 \leq a \leq b \leq 10)\)
  • Subtask \(2\) (\(30\%\) số điểm): Có \((a \leq b \leq 100)\)
  • Subtask \(3\) (\(40\%\) số điểm): Có \((a \leq b \leq 10^6)\)

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.