数字变换
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
已知 个素数 组成一个素数集。
有 个问题:
每个问题给出一个整数 ,让你通过若干次操作将其变成 0 。每次操作,你可以从素数集中任意选择一个素数 ,然后对 进行如下变换: = 。其中 % 表示取模。
你希望操作次数尽可能少。
请你输出最少操作次数。如果不可能变成 ,则输出 -1 。
输入格式
第一行:包含两个整数 。
第二行:包含 个素数 。
接下来 行,每行包含一个整数 。
输出格式
共 行,对于每个问题给出的 ,输出使得 变为 的最小操作次数;如果不可能变为 ,则输出 -1。
样例输入
2 2
2 3
5
6
样例输出
3
-1
样例解释
对于 n=5:
(1) n=5, p=3:n=5-5%3=3
(2) n=3, p=2:n=3-3%2=2
(3) n=2, p=3:n=2-2%3=0
对于 n=6:
不可能变成 0.
数据范围
- 对于 分的数据,保证 。
- 对于另外 分的数据,保证 。
- 对于 的数据,保证 , 且 为素数,。