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+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.