publicintCompareTo(object that) { var t = that as NAndRadN; if (this.rad == t.rad) { returnthis.n.CompareTo(t.n); } else { returnthis.rad.CompareTo(t.rad); } } }
准备工作做好之后,写一个for循环,把1到10万的rad算出来。排序,找到第1万个数字,输出即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
for (long i = 1; i <= 100000; i++) { long[] fac = TrialDivisioFac(i).Distinct().ToArray(); long p = 1; foreach (var f in fac) { p *= f; }
results.Add(new NAndRadN { n = (int)i, rad = p }); }
var rads = results.ToArray(); Array.Sort(rads); return rads[9999].n;