C++ Codechef:从数组元素中移除成对的公因子并找到最小乘积。为什么回答错了?
问题陈述: 给您一个由N个正整数组成的数组,您可以对该数组执行以下操作C++ Codechef:从数组元素中移除成对的公因子并找到最小乘积。为什么回答错了?,c++,algorithm,C++,Algorithm,问题陈述: 给您一个由N个正整数组成的数组,您可以对该数组执行以下操作 1) 在数组(i!=j)中选择任意两个索引i和j。 2) 将A[i]和A[j]除以A[i]和A[j]的公因数 您可以根据需要多次执行上述操作,目的是最小化生成的数组的乘积。找到这个最小的产品。因为答案可能是一个大数字,所以以100000007为单位打印产品 输入: 第一行包含T,测试用例的数量。每个测试用例包含2行。每个测试用例的第一行包含一个整数N,数组的大小 每个测试用例的第二行包含N个空格分隔的整数,数组A 输出: 对
1) 在数组(i!=j)中选择任意两个索引
i
和j
。2) 将
A[i]
和A[j]
除以A[i]和A[j]的公因数
您可以根据需要多次执行上述操作,目的是最小化生成的数组的乘积。找到这个最小的产品。因为答案可能是一个大数字,所以以100000007为单位打印产品
输入:
第一行包含T,测试用例的数量。每个测试用例包含2行。每个测试用例的第一行包含一个整数N,数组的大小
每个测试用例的第二行包含N个空格分隔的整数,数组A
输出:对于每个测试用例,输出指示该测试用例答案的单行
CONSTRAINTS:
1<=T<=10
30 points : 1<=N<=2000, 1<=A[i]<=10^6
70 points : 1<=N<=20000, 1<=A[i]<=10^8
SAMPLE INPUT:
1
3
2 3 6
SAMPLE OUTPUT:
1
约束:
1这是错误的,因为您必须找到数组的最小乘积。在编写代码时,您不需要搜索以最小化此乘积,只要在可能的情况下对整数进行除法即可
考虑以下示例:
1
5
1 3 6 9 2
输出必须为1。你的代码是9。为什么?因为你把3和6作为一对,得到1192
。但是如果你得到3和9,你得到的是16132
。。。然后你可以有12
非常感谢你的反例
1
5
1 3 6 9 2