(1)并不了解c#,通过对程序的解读,大致感觉这个代码的目的是要在int64的范围中找到不能被rg[k]与rg[k+1]整除,但是同时可以被数组中其他的数整除的数。
(2)我将代码直接复制到了VS中,我点击运行然后去食堂买了个饭,发现回来之后还没有出结果,可以见得这个数肯定非常大,这个数存不存在其实我现在也不知道,通过查资料最后发现计算方法为:首先必须要符合不能被rg[k]与rg[k+1]整除,但是同时可以被数组中其他的数整除,可以确定rg[k]肯定大于15。其次,在16到31之间的数中,17没有因子,23没有因子,其他数都可以在2-15之间找到因子,所以,这两个数一定包含23与17的其中一个,22是11的倍数,24是12的倍数,所以23不是其中的一个,18是2和9的倍数,因为i必须被2和9整除,所以18也不是,只有16可以,所以这两个是分别是16和17。那么最小的i就是剩下28个数的最小公倍数:2123581660200。
(3)我在寝室用了差不多一晚上的时间来运行这段代码,并没有得到结果输出,因为for循环中的范围达到了int64.MaxValue,所以这个数一定不会小,我估计至少要一天。网上说要277个小时,也就是10天多,真是醉了。
(4)我觉得看机器吧,毕竟钱是极好的。