题目描述
小C与小P最近无聊的很,于是自己研究了一个新的游戏,游戏的规则是这样的现在有一个数组,小C先从数组里选择一个数x,小P从数组里选择一个数y,当然x与y是可以相同的,然后他们的分数就是x*y的因子的个数,现在小C与小P想得到最高的分数,你能告诉他们可能得到的最大分数是多少吗?
输入
一行一个数n,表示A中整数的数量。接下来一行n个数,分别表示a1,a2,...,an,为A中的元素。
输出
最大的分数。
示例输入
2
3 4
示例输出
6
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int a[] = new int[n];
for (int i = 0; i < a.length; i++) {
a[i] = sc.nextInt();
}
charu(a);
int sum = a[n-1] * a[n-2];
int flag = 0;
for (int i = 1; i <= sum; i++) {
if (sum%i==0) {
flag++;
}
}
System.out.println(flag);
}
/**
* 插入排序
* @param a
*/
public static void charu(int a[]){
for (int i = 1; i < a.length; i++) {//新数的位置
for (int j = i; j > 0; j--) {//与左边的依次比较
if (a[j] > a[j - 1]) {//顺序需要调整则交换
int temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
} else {
break;//提高效率,左边都是有序的,
//新数据如果无需交换,则可以直接放入有序数列尾部
}
}
}
}
}