求正整数n的所有因子

因子的概念:假如整数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;
        }

 

posted @ 2013-09-18 17:53  orchid  阅读(1815)  评论(0编辑  收藏  举报