Python 中两个数字形成的最大因子数
给定一个整数类型元素的数组,任务是找到两个数字相乘形成的最大因子数。首先,我们将计算数组中存在的数字的乘积,就像计算叉积一样;其次,我们将计算这些数字的因子,并在所有因子中检查最大因子。
输入
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。
下面程序中使用的途径如下
- 将整数元素输入到数组中
- 取临时变量 multiple 和 big 来存储最大值
- 从 0 开始循环 i 直到数组的长度
- 在循环内,从 0 开始另一个循环 j 直到数组的长度
- 检查 a[i] 是否不等于 a[j],如果是,则将变量 multiple 设置为 a[i] * a[j],并检查 big < countFactor(multiple),然后将 big 设置为 count Factor(multiple)
- 在 countFactor(multiple) 函数中
- 取临时变量为 int c = 0
- 从 j 到 1 开始循环 for 直到 multiple 值
- 检查 multiple % j 是否等于 0
- 然后将 c 加 1
- 检查 multiple % j 是否等于 0
- 返回 c
- 在 countFactor(multiple) 函数中
- 打印 big 的值
示例
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
广告