atcoder#ABC285H. [ABC285Ex] Avoid Square Number

[ABC285Ex] Avoid Square Number

题目描述

整数 N,K N,K と長さ K K の数列 E E が与えられます。
長さ N N の正整数列であって、以下の条件を全て満たすものの総数を 109+7 \color{red}{10^9+7} で割った余りを求めてください。

  • どの要素も平方数でない
  • 全要素の積が  i=1K piEi \displaystyle\ \prod_{i=1}^{K}\ p_i^{E_i} である

但し、

  • pi p_i は小さい方から i i 番目の素数を指すものとします。
  • ある 2 2 つの長さが等しい正整数列 A,B A,B について、 A A i i 項目と B B i i 項目が異なるような整数 i i が存在する時に限り、 A A B B は異なる列であるとします。

输入格式

入力は以下の形式で標準入力から与えられる。

N N K K E1 E_1 E2 E_2 \dots EK E_K

输出格式

答えを整数として出力せよ。

题目大意

给定 n,kn, k 和长为 kk 的正整数列 EE,求长为 nn 的满足以下两条件的正整数列数目:

  • 数列中没有完全平方数;

  • pip_i 表示从小到大第 ii 个质数,则数列中所有数之积为 i=1kpiEi\prod\limits^k_{i=1}p_i^{E_i}

答案对 109+710^9 + 7 取模。

3 2
3 2
15
285 10
3141 5926 5358 9793 2384 6264 3383 279 5028 8419
672860525

提示

制約

  • 入力は全て整数
  • 1  N,K,Ei  10000 1\ \le\ N,K,E_i\ \le\ 10000

Sample Explanation 1

全要素の積が 72=23 × 32 72=2^3\ \times\ 3^2 となる長さ 3 3 の数列は以下です。 - (1,1,72) (1,1,72) とその並べ替え ( 3 3 通り ) ... 1 1 が平方数なので、条件を満たしません。 - (1,2,36) (1,2,36) とその並べ替え ( 6 6 通り ) ... 1,36 1,36 が平方数なので、条件を満たしません。 - (1,3,24) (1,3,24) とその並べ替え ( 6 6 通り ) ... 1 1 が平方数なので、条件を満たしません。 - (1,4,18) (1,4,18) とその並べ替え ( 6 6 通り ) ... 1,4 1,4 が平方数なので、条件を満たしません。 - (1,6,12) (1,6,12) とその並べ替え ( 6 6 通り ) ... 1 1 が平方数なので、条件を満たしません。 - (1,8,9) (1,8,9) とその並べ替え ( 6 6 通り ) ... 1,9 1,9 が平方数なので、条件を満たしません。 - (2,2,18) (2,2,18) とその並べ替え ( 3 3 通り ) ... 条件を満たします。 - (2,3,12) (2,3,12) とその並べ替え ( 6 6 通り ) ... 条件を満たします。 - (2,4,9) (2,4,9) とその並べ替え ( 6 6 通り ) ... 4,9 4,9 が平方数なので、条件を満たしません。 - (2,6,6) (2,6,6) とその並べ替え ( 3 3 通り ) ... 条件を満たします。 - (3,3,8) (3,3,8) とその並べ替え ( 3 3 通り ) ... 条件を満たします。 - (3,4,6) (3,4,6) とその並べ替え ( 6 6 通り ) ... 4 4 が平方数なので、条件を満たしません。 よって、条件を満たす数列は 15 15 個です。

Sample Explanation 2

109+7 \color{red}{10^9+7} で割った余りを求めることに注意してください。