我们给定了一个整数类型元素的数组,任务是找到通过将两个数字相乘而形成的最大因子,即首先我们将对数组中存在的数字进行相乘,例如计算叉积;其次,我们将计算这些数字的因数,然后检查所有因素中的最大因素。
int arr[] = {3, 2, 10}输出结果
Maximum factors formed by two numbers are: 8
计算内部叉积,即3 * 2 = 6、3 * 10 = 30、2 * 10 = 20
现在计算6-> 1,2,3,6的因子;30-> 1,2,3,5,6,10,15,30; 20-> 1,2,4,5,10,20。
检查具有最大因子数的数字,即6个因子总共有4个因子,20个因子总共有6个因子,30个因子总共有8个因子。因此,由两个数字形成的最大因子为8。
int arr[] = {1, 4, 6}输出结果
Maximum factors formed by two numbers are: 8
计算内叉积,即1 * 4 = 4、1 * 6 = 6、4 * 6 = 24
现在计算4-> 1,2,4的因子;6-> 1,2,3,6; 24-> 1、2、3、4、6、8、12、24。
检查具有最大因子数的数字,即4个因子总共3个因子,6个因子总共4个因子,而24个因子总共8个因子。因此,由两个数字形成的最大因子为8。
在数组中输入整数元素
将临时变量乘以大并存储最大值
从0到数组长度开始循环i
在循环内部,从0到数组长度开始另一个循环j
检查a [i]是否不等于a [j],如果是,则使用a [i] * a [j]设置变量倍数,并检查big <countFactor(multiple),然后将big设置为count Factor(multiple)
将临时变量设为int c = 0
从j到1直到多个值的启动循环
返回c
然后将c加1
检查多个%j = 0
在countFactor(multiple)函数中
打印值大
public class BiggestFactor{
public static void main(String[] args){
int a[]={3,2,10};
int multiple=1;
int big=1;
for(int i=0;i<a.length-1;i++){
for (int j = 0; j < a.length; j++){
if(a[i]!=a[j]){
multiple=a[i]*a[j];
if(big<countFactor(multiple))
big=countFactor(multiple);
}
}
}
System.out.println(“Maximum factors formed by two numbers are: ” +big);
}
private static int countFactor(int i){
int c=0;
for (int j = 1; j<=i; j++){
if(i%j==0){
c++;
}
}
return c;
}
}输出结果
Maximum factors formed by two numbers are: 8