public static double GCD(List<double> listOri) { List<double> list = new List<double>(listOri); double c = 1; for (int i = 1; i < list.Count; i++) { if (list[i - 1] < list[i]) //确定a>b { list[i - 1] = list[i - 1] + list[i]; list[i] = list[i - 1] - list[i]; list[i - 1] = list[i - 1] - list[i]; } for (c = list[i]; c >= 1; c--) { if (list[i - 1] % c == 0 && list[i] % c == 0) break; } list[i] = c; } return c; }