Bài code test cho Rùa

Xem PDF



Thời gian:
Python 5.0s

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: 1500 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: NFACTDDX.INP Output: NFACTDDX.OUT

Sau một thời gian ăn học dài dằng dặc, Rùa🐢 nghĩ mình đã đủ trình độ và quyết định sẽ đi xin việc vào các công ty hàng đầu. Công ty mà Rùa🐢 đang ứng tuyển yêu cầu Rùa phải làm một bài code test, thông thường, Rùa sẽ "làm gỏi" những bài này. Nhưng khổ nỗi, Rùa🐢 đặc biệt dở ẹc dạng bài như lần này! Đề bài như sau:

Cho hai số nguyên dương \(N\)\(x\), hãy đếm số lượng ước số của \(N!\) mà chia hết cho \(x\), và vì số này có thể lớn, nên hãy lấy kết quả chia dư cho \(10^9+7\).

Rùa🐢 không ngờ rằng một đề bài vỏn vẹn 1 câu có thể làm khiếp đảm và đánh gục ý chí của Rùa... Các bạn hãy giải bài này để cho Rùa thấy đây là một bài dễ, giúp Rùa tự tin hơn nhé!

Input

  • Một dòng duy nhất chứa hai số nguyên dương \(N\)\(x\)

Output

  • In ra một số nguyên là kết quả của bài toán.

Scoring

  • Subtask \(1\) (\(40\%\) số điểm): \(N \leq 10\)
  • Subtask \(2\) (\(60\%\) số điểm): \(N \leq 16\)
  • Subtask \(3\) (\(90\%\) số điểm): \(N \leq 10^5\)\(x \leq 10^{9}\)
  • Subtask \(4\) (\(100\%\) số điểm): \(N \leq 2*10^6\)\(x \leq 10^{12}\)

Example

Test 1

Input
4 1 
Output
8
Note

\(4! = 4*3*2*1 = 24\), số \(24\)\(8\) ước \(\{1,2,3,4,6,8,12,24\}\) và tất cả đều chia hết cho \(x=1\).

Test 2

Input
4 2 
Output
6
Note

\(4! = 24\), số \(24\) chỉ có \(6\) ước sau đây là chia hết cho \(2\): \(\{2,4,6,8,12,24\}\)

Bình luận (14)

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