如何减少以下程序执行时间:
using System;
using System.Diagnostics;
class LeastMM
{
static void Main()
{
Stopwatch sw = new Stopwatch();
sw.Start();
byte[] nums = new byte[5];
for (byte i = 0; i < nums.Length; i++)
{
nums[i] = byte.Parse(Console.ReadLine());
}
short? lmm = null;
//uint currentI = 1;
byte divisors = 0;
//for (uint i = 1; i < nums.Length; i++) Console.WriteLine("{0} {1} ", i, nums[i]);
for (short i = 1; ; i++)
{
divisors = 0;
for (byte j = 0; j < nums.Length; j++)
{
if (i % nums[j] == 0) divisors++;
}
if (divisors >= 3)
{
lmm = i;
break;
}
}
Console.WriteLine(lmm);
sw.Stop();
Console.WriteLine();
Console.WriteLine(sw.Elapsed.Seconds + " or " +"0."+sw.Elapsed.Milliseconds);
}
}
执行时间必须小于 0.25 秒。我尝试不使用循环,而是使用四个不同的变量——a、b、c、d、e,也尝试使用尽可能小的十进制类型。这些都不起作用。该程序的目的是找到至少 3 个所提供数字之间的最小多数除数。即 1、2、3、4、5 的最小除数是 4,因为它可以被 4、2 和 1 整除。数字在 1 到 100 的范围内。