欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1883C.Raspberries
Raspberries
You are given an array of integers and a number (). In one operation, you can do the following:
- Choose an index ,
- Set .
Find the minimum number of operations needed to make the product of all the numbers in the array divisible by .
Input
Each test consists of multiple test cases. The first line contains a single integer () — the number of test cases. Then follows the description of the test cases.
The first line of each test case contains two integers and (, ) — the size of the array and the number .
The second line of each test case contains integers ().
It is guaranteed that the sum of over all test cases does not exceed .
Output
For each test case, output the minimum number of operations needed to make the product of all the numbers in the array divisible by .
Note
In the first test case, we need to choose the index twice. After that, the array will be . The product of all the numbers in the array is .
In the fourth test case, the product of the numbers in the array is , which is already divisible by , so no operations are needed.
In the eighth test case, we can perform two operations by choosing and in any order. After that, the array will be . The product of the numbers in the array is .
Samples
15
2 5
7 3
3 3
7 4 1
5 2
9 7 7 3 9
5 5
5 4 1 2 3
7 4
9 5 1 5 9 5 1
3 4
6 3 6
3 4
6 1 5
3 4
1 5 9
4 4
1 4 1 1
3 4
3 5 3
4 5
8 9 9 3
2 5
1 6
2 5
10 10
4 5
1 6 1 1
2 5
7 7
2
2
1
0
2
0
1
2
0
1
1
4
0
4
3
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |