最大公因数
/**
* 俩数 的最大公因数
* YYY 2020年12月18日
* @param m
* @param n
* @return
*/
public static int getGCD(int m,int n){
int result = 0;
while (n != 0) {
result = m % n;
m = n;
n = result;
}
return m;
}
多个数 最简整数比
算出第一个数 和其他数的 最大公因数
再从这些最大公因数里 找最小的
再用 这堆数 分别 除 这个 最小的最大公因数
例 8 8 12 16
8和8的最大公因数 是 8
8和12的最大公因数 是 4
8和16的最大公因数 是 8
最小的 最大公因数 是 4
分别除
得到 最简整数比 为 2 2 3 4
最简整数比之和 代码如下
/**
* 取A : 各组 试验例数 的最简整数比之和
* @return
*/
public static int getA(int[] numArray) {
// 算出 第一个和每个数的 最大公因数
int[] greatestCommonFactorArray = new int[numArray.length - 1];
for (int i = 1; i < numArray.length; i++) {
greatestCommonFactorArray[i - 1] = getGCD(numArray[0],numArray[i]);
System.out.println(greatestCommonFactorArray[i - 1]);
}
// 取 最小的 最大公因数
int greatestCommonFactor = greatestCommonFactorArray[0];
for (int i = 0; i < greatestCommonFactorArray.length; i++) {
if (greatestCommonFactor > greatestCommonFactorArray[i]) {
greatestCommonFactor = greatestCommonFactorArray[i];
}
}
System.out.println(greatestCommonFactor);
System.out.println(greatestCommonFactor);
int a = 0;
// 最简整数比之和
for (int num : numArray) {
a += (num / greatestCommonFactor);
System.out.println(greatestCommonFactor);
}
System.out.println("最简整数比之和:"+ a);
return a;
}