编程题
### 问题描述 话说三国时期,曹操打算攻打蜀汉,需要派 $n$ 个将军各自带队出发。 为了避免浪费粮食,曹操想精确计算每个队伍的人数,于是他找来谋士刘晔商量。 刘晔说:“主公,咱可以简单点,用‘士气’来代表队伍人数,‘士气’越高,就表示人数越多,战斗力越强!” 曹操一听,乐了:“妙啊!不过这‘士气’怎么定才合适呢?” 刘晔说:“这‘士气’啊,得满足两个条件: * 每个队伍的‘士气’都是不超过 $m$ 的正整数; * 所有队伍的‘士气’的最小公倍数必须正好是 $m$,这样才能保证各部队协调作战,发挥最大战斗力! ” 曹操听完,摸着胡子说:“好!那你说说,满足条件的‘士气’分配方案到底有多少种?” 刘晔赶紧说:“这…这得找专业的来算啊…” 于是,曹操转头问你:“你知道满足条件的方案数是多少吗?对了,我不喜欢很大的数字,所以你算出来的结果别忘了对 $998244353$ 取个余数。” 请你回答曹操的问题。 ### 输入格式 输入一行包含两个整数 $n,m$($2\leq n,m \leq 10^9$),分别表示将军(队伍)的数量、单个队伍“士气”的最大值和所有队伍“士气”的最小公倍数。 ### 输出格式 输出一个整数,表示满足条件的士气分配方案的数量,结果对 $998244353$ 取余。 ### 样例输入 ```text 2 8 ``` ### 样例输出 ```text 7 ``` ### 样例说明 可能的方案有: $$ [1, 8]\\\\ [8, 1]\\\\ [2, 8]\\\\ [8, 2]\\\\ [4, 8]\\\\ [8, 4]\\\\ [8,8] $$ 共计 $7$ 种。
查看答案
赣ICP备20007335号-2