CF1359E Modular Stability
题目描述
我们定义 $ x \bmod y $ 为 $ x $ 除以 $ y $ 的余数(在 C++ 或 Java 中是 $ \% $ 运算符,在 Pascal 中是 mod 运算符)。
我们称一个正整数数组 $ [a_1, a_2, \dots, a_k] $ 是**稳定**的,如果对于从 $ 1 $ 到 $ k $ 的整数的每一个排列 $ p $,以及对于每一个非负整数 $ x $,都满足以下条件:
$ (((x \bmod a_1) \bmod a_2) \dots \bmod a_{k - 1}) \bmod a_k = (((x \bmod a_{p_1}) \bmod a_{p_2}) \dots \bmod a_{p_{k - 1}}) \bmod a_{p_k} $
也就是说,对于每个非负整数 $ x $,如果我们重新排列数组 $ a $ 的元素,$ (((x \bmod a_1) \bmod a_2) \dots \bmod a_{k - 1}) \bmod a_k $ 的值不会改变。
给定两个整数 $ n $ 和 $ k $,计算满足 $ 1 \le a_1 < a_2 < \dots < a_k \le n $ 的稳定数组 $ [a_1, a_2, \dots, a_k] $ 的数量。
输入格式
输入仅有一行,包含两个整数 $ n $ 和 $ k $($ 1 \le n, k \le 5 \cdot 10^5 $)。
输出格式
输出一个整数 —— 满足 $ 1 \le a_1 < a_2 < \dots < a_k \le n $ 的稳定数组的数量。由于答案可能很大,请输出其对 $ 998244353 $ 取模的结果。
说明/提示
翻译由 DeepSeek V3 完成