#P6756. [BalticOI 2013] Brunhilda's Birthday

[BalticOI 2013] Brunhilda's Birthday

题目描述

有一个整数 nn 以及一个长度为 mm 的素数表 pp。

您可以进行任意多次操作,每一次操作时,您选择一个素数 pip_i,这会使得 n→⌊npi⌋×pin\to \lfloor \frac{n}{p_i}\rfloor\times p_i。

您的目标是求出使得 nn 变为 00 的最小操作数,如果不可能变为 00,请输出 oo。

为了增加难度,您需要回答 QQ 组 nn。

输入格式

第一行为两个整数 m,Qm,Q。

接下来一行 mm 个整数 pp。

接下来 QQ 行,一行一个整数 nn,表示每一次询问给出的 nn。

输出格式

对于每一个询问,求出使得 nn 变为 00 的最小操作数,如果不可能变为 00,请输出 oo。

2 2
2 3
5
6
3
oo

提示

数据范围及限制

  • 对于 2020 分的数据,保证 m,n,Q≤104m,n,Q\le 10^4。
  • 对于另外 2020 分的数据,保证 Q=1Q=1。
  • 对于 100%100\% 的数据,保证 1≤m,Q≤1051\le m,Q\le 10^5,2≤pi≤1072\le p_i\le 10^7 且 pip_i 为素数,1≤n≤1071\le n\le 10^7。

说明

本题译自 Baltic Olympiad in Informatics 2013 Day 2 T1 Brunhilda’s Birthday。

因为译题人找不到合适的设置,所以本题满分 110110 分。