因子的概念:假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因子。 需要注意的是,唯有被除数,除数,商皆为整数,余数为零时,此关系才成立。反过来说,我们称n为m的倍数。
求一个正整数n的所有因子,非常简单。只要从1到n逐个进行测试就可以。可以削减的一点计算量是不用遍历到n,遍历到根号n就可以。
C#代码如下
public List<int> Factors(int n) { List<int> list = new List<int>(); int rootn = Convert.ToInt32(Math.Floor(Math.Sqrt(n))); for (int i = 1; i <= rootn; i++) { if (n%i == 0) { list.Add(i); if (i != n/i) { list.Add(n / i); } } } list.Sort(); return list; }