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