static void Main(string[] args) { Console.WriteLine("输入两个整数,求最大公约数"); int a, b; Stopwatch stopwatch = new Stopwatch(); while (true) { a = Convert.ToInt32(Console.ReadLine()); b = Convert.ToInt32(Console.ReadLine()); stopwatch.Reset(); stopwatch.Start(); int res = getGYSByQJF(a, b); stopwatch.Stop(); Console.WriteLine(res + " 用时:" + stopwatch.ElapsedMilliseconds); } } //穷举法 static int getGYSByQJF(int a, int b) { int bigNum = 0; int minNum = 0; if (a > b) { bigNum = a; minNum = b; } else if (a < b) { bigNum = b; minNum = a; } else { return a; } int result = 1; //穷举从2开始到最小数的一半 for (int i = 2; i < minNum / 2; i++) { if (bigNum % i == 0 && minNum % i == 0) { result = i; } } return result; }
运行速度可以直接参考minNum,minNum越大,运行越大
计算99999999和88888888,用时:348ms