Phương Anh đang cùng các bạn trong đội tuyển thi HSG làm một bài toán với đề khá ngắn do Nam đố. Bài toán đó như sau:
Cho hai số nguyên dương \(n,\ m\). Hãy đếm số dãy \(A\) gồm \(n\) phần tử \(a_{1},a_{2},\ldots,\ a_{n}\) sao cho thoả mãn tất cả các điều kiện dưới đây:
\(1 \leq a_{i} \leq m\), với \(1 \leq i \leq n\).
\(a_{i + 1}\) chia hết cho \(a_{i}\), với \(1 \leq i < n\).
Đề khá ngắn gọn, dễ hiểu, nhưng số \(n,\ m\) được cho trước khá lớn, lên đến \({2.10}^{8}\). Phương Anh khá bối rối khi gặp bài toán này do ít tiếp xúc với những bài toán dãy chia hết. Huy, một bạn trong đội tuyển thi HSG giải được bài toán này, Huy còn cho biết chỉ cần một chút kiến thức toán “nhỏ” có thể giải được bài này một các dễ dàng. Nam sau một phút suy nghĩ cũng đồng tình với ý kiến của Huy.
Yêu cầu: Hãy giúp Phương Anh thoát khỏi sự bối rối bằng cách đếm số dãy thoả mãn tất cả các điều kiện trên.
Dữ liệu vào: Gồm một dòng duy nhất chứa hai số nguyên dương \(n,\ m\).
Kết quả: Một số nguyên duy nhất là phần dư của kết quả bài toán khi chia cho \(998244353\).
Ví dụ:
Input | Ouput | Giải thích |
---|---|---|
3 5 | 16 | Một số dãy thoả mãn là:
|
Ràng buộc:
Có 5% số test ứng với 5% số điểm của bài thoả mãn điều kiện: \(n,\ m \leq {2.10}^{3}\).
10% số test khác ứng với 10% số điểm của bài thoả mãn điều kiện: \(n,\ m \leq {2.10}^{5}.\)
10% số test khác ứng với 10% số điểm của bài thoả mãn điều kiện: \(n,\ m \leq {2.10}^{6}.\)
75% số test còn lại ứng với 75% số điểm của bài thoả mãn điều kiện: \(n,\ m \leq {3.10}^{8}\).
Code tích cực |
---|
Trong 24h |
Trong 7 ngày |
|
Trong 30 ngày |
|
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 38905 |