我们给定了一个整数类型元素的数组,任务是找到通过将两个数字相乘而形成的最大因子,即首先我们将对数组中存在的数字进行相乘,例如计算叉积;其次,我们将计算这些数字的因数,然后检查所有因素中的最大因素。
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