AT_abc349_f [ABC349F] Subsequence LCM
Description
[problemUrl]: https://atcoder.jp/contests/abc349/tasks/abc349_f
長さ $ N $ の正整数列 $ A=(A_1,A_2,\dots,A_N) $ と正整数 $ M $ が与えられます。$ A $ の空でない連続とは限らない部分列であって、列に含まれる要素の最小公倍数が $ M $ になるようなものの個数を $ 998244353 $ で割った余りを求めてください。ただし、$ 2 $ つの部分列が列として同じでも、取り出す位置が異なるならば区別するものとします。また、列の要素の個数が $ 1 $ のときはその要素自身を最小公倍数とします。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $
Output Format
答えを出力せよ。
Explanation/Hint
### 制約
- $ 1\leq\ N\leq\ 2\times\ 10^5 $
- $ 1\leq\ M\leq\ 10^{16} $
- $ 1\leq\ A_i\leq\ 10^{16} $
- 入力は全て整数
### Sample Explanation 1
$ A $ の部分列であって,列に含まれる要素の最小公倍数が $ 6 $ となるものは $ (2,3),(2,3,6),(2,6),(3,6),(6) $ の $ 5 $ つです。
### Sample Explanation 2
部分列が列として同じでも、取り出す位置が異なるならば区別することに注意してください。