题库练习 Omega Numbers
← 上一题 下一题 →

A16816 | Omega Numbers

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

对于给定的数字 $n$,定义函数 $\omega(n)$,表示数 $n$ 的素因数分解中不相同的质数的个数。

例如,$\omega(12) = \omega(2^2 \cdot 3) = 2$。$\omega(120) = \omega(2^3 \cdot 3 \cdot 5) = 3$。

对于一个由自然数组成的数组 $a$ 和自然数 $k$,定义 $\operatorname{f}(a, k) = \sum_{i < j} \omega(a_i \cdot a_j)^k$,对所有满足 $i < j$ 的情况求和。

现在给定一个长度为 $n$ 的自然数数组 $a$,和一个自然数 $k$,请计算 $\operatorname{f}(a, k)$ 对 $998\,244\,353$ 取模后的结果。

输入格式

输入包含多组测试数据。第一行包含测试用例个数 $t$,$(1 \le t \le 10^4)$。每组测试数据描述如下:

每组测试数据的第一行包含两个整数 $n$ 和 $k$,$(1 \leq n \leq 2 \cdot 10^5, 1 \leq k \leq 10^9)$,分别表示数组 $a$ 的长度和幂的指数。

第二行包含 $n$ 个自然数 $a_1, a_2, \ldots, a_n$,$(1 \leq a_i \leq n)$,表示数组 $a$。

保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每组测试数据,输出一行一个整数,表示函数 $\operatorname{f}(a, k)$ 对 $998\,244\,353$ 取模后的结果。

输入输出样例

输入 #1
3
4 1
3 3 3 3
4 1
1 1 1 1
4 2
1 2 3 4
输出 #1
6
0
12
C++ 编辑器
输入
输出