代码:
1 public class Hello { 2 3 /** 4 * @param args 5 */ 6 public static void main(String[] args) { 7 int a = 1112; 8 int b = 208; 9 int e = 546800; 10 int f = 256400; 11 int c = 1; 12 int min = (a < b ? a : b); 13 int min2 = (e < f ? e : f); 14 for(int i = 1; i <= min; i++){ 15 if(a % i == 0 && b % i == 0) 16 c = i; 17 } 18 System.out.println(c); 19 for(int i = min2; i >= 1; i--){ 20 if(e % i == 0 && f % i == 0){ 21 c = i; 22 break; 23 } 24 } 25 System.out.println(c); 26 } 27 }
结果:一种是从小到大循环,一种是从大到小循环,说不是哪种算法优秀,时间或空间复杂度最小,要针对不同的情况吧。