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
      • 返回 c
  • 打印 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

更新于: 2020年8月3日

1K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告